我正在做一個查詢從1表和使用UNION
與2 select
的具有不同的條件。如何在SQL中對結果進行分組?
SELECT *
FROM (
SELECT DATE(MAX(RECEIVED)) DT,
INFO CASH_INFO,
SUM(IF(TRANS_TYPE = 714, AMOUNT, 0)) TOTAL_CASH,
'' AS OTHER_INFO,
0 AS TOTAL_CHEQUE,
0 AS TOTAL_CREDIT
FROM PAYMENT
WHERE LOGIN = 'opensys'
AND SOURCE_OF_TRX = '245T2'
AND RET_CODE_ID IN (0, 106, 110)
AND RECEIVED >= DATE_SUB('2015-09-23 16:30:42', INTERVAL 7 DAY)
AND TRANS_TYPE = 714
GROUP BY INFO
UNION
SELECT DATE(MAX(RECEIVED)) DT,
'' AS CASH_INFO,
0 AS TOTAL_CASH,
INFO OTHER_INFO,
SUM(IF(TRANS_TYPE = 715, AMOUNT, 0)), -- TOTAL_CHEQUE,
SUM(IF(TRANS_TYPE = 716, AMOUNT, 0)) -- TOTAL_CREDIT
FROM PAYMENT
WHERE LOGIN = 'opensys'
AND SOURCE_OF_TRX = '245T2'
AND RET_CODE_ID IN (0, 106, 110)
AND RECEIVED >= DATE_SUB('2015-09-23 16:30:42', INTERVAL 7 DAY)
AND TRANS_TYPE in (715, 716)
GROUP BY INFO
) A
GROUP BY CASH_INFO, OTHER_INFO
ORDER BY DT
結果並不準確,因爲該記錄沒有對同一日期記錄進行分組。
我想實現的是將結果與同一日期進行分組。
P/S:最後2條記錄將始終返回相同的日期。這意味着在2015年9月23日將有2日期。
對不起,我無法發佈圖片,所以我必須將其鏈接到我的谷歌驅動器。 image
您的圖像isnt公開。如果你提供[** SqlFiddle **](http://sqlfiddle.com/#!6/256da/8),我們可以更容易地找到答案。也請提供樣品數據和慾望輸出 請閱讀[如何問](http://stackoverflow.com/help/how-to-ask) –
對不起,我把圖像分享給大家。慾望輸出和樣本在圖像本身上。應該很好地解釋我的問題。謝謝! – user3276618
看起來不錯,但問題是我們不能從圖片複製/粘貼。這就是爲什麼我建議一個SqlFiddle,這節省了我們很多時間。 –