2015-01-07 9 views
0

Я не знаю, правильный ли вопрос.Выберите несколько столбцов в одной таблице

У меня есть таблица с двумя полями, кредит и дебет. Я делаю сумму каждого поля, а затем создаю новый столбец с общим балансом. Я создал несколько запросов, которые хорошо работают отдельно Является ли это:

SELECT Sum(libromayor.debe) AS IngresosGlobal, 
Sum(libromayor.haber) AS GastosGlobal,   
(Sum(libromayor.debe) - Sum(libromayor.haber)) AS TotalGlobal 
FROM libromayor 

и это:

SELECT Sum(libromayor.debe) AS IngresosActual, 
Sum(libromayor.haber) AS GastosActual, 
(Sum(libromayor.debe) - Sum(libromayor.haber)) AS TotalActual 
FROM libromayor 
WHERE Year(libromayor.fechaevento) = Year(CurDate()) 

, что я хотел бы, чтобы объединить два запроса, но оставляя результат в этом случае в 6 колонны, не 3, как в этой попытке запроса:

SELECT Sum(libromayor.debe) AS IngresosGlobal, 
Sum(libromayor.haber) AS GastosGlobal,   
(Sum(libromayor.debe) - Sum(libromayor.haber)) AS TotalGlobal 
FROM libromayor 
UNION 
SELECT Sum(libromayor.debe) AS IngresosActual, 
Sum(libromayor.haber) AS GastosActual, 
(Sum(libromayor.debe) - Sum(libromayor.haber)) AS TotalActual 
FROM libromayor 
WHERE Year(libromayor.fechaevento) = Year(CurDate()) 

результат дал это:

IngresosGlobal GastosGlobal TotalGlobal 
1521.00   1575.00  -54.00 
121.00    100.00   21.00 

, но я хотел бы создать представление, что даст этот результат

IngresosGlobal GastosGlobal TotalGlobal  IngresosActual  GastosActual  TotalActual 
1521.00   1575.00  -54.00   121.00    100.00   21.00 
+1

http://stackoverflow.com/questions/26786079/mysql-parallel-merge-two-unrelated-queries-with-same-of-rows –

+0

Если вам нравится, рассмотрите следуя этому простому двухэтапному действию: 1. Если вы еще этого не сделали, укажите надлежащие DDL (и/или sqlfiddle), чтобы мы могли более легко реплицировать проблему. 2. Если вы еще этого не сделали, укажите желаемый результирующий набор, соответствующий информации, представленной на шаге 1. – Strawberry

ответ

1

Вы можете сделать это таким образом:

SELECT Sum(libromayor.debe) AS IngresosGlobal, 
sum(IF(ear(libromayor.fechaevento) = Year(CurDate()), libromayor.debe, 0)) AS IngresosGlobal2 
FROM libromayor 

P.S. показывая только одну колонку, чтобы дать вам идею

+0

спасибо за идею @Urill, наконец, запрос: – Jose

Смежные вопросы