2015-01-07 250 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 

附:只顯示一列,給你想法

+0

感謝您的意見@Urill查詢最終是這樣的: – Jose

相關問題