《Mysql必讀使用SQL實現小計,合計以及排序》要點:
本文介紹了Mysql必讀使用SQL實現小計,合計以及排序,希望對您有用。如果有疑問,可以聯系我們。
MYSQL教程--說明:個人學習筆記,實現小計合計顯示,分組按BANK_ID+OP_DATE升序排序
MYSQL教程--查詢
SELECT A.ID
?,A.BANK_ID
?,A.AMT
?,B.OP_DATE
?,B.OPERATOR_NO
FROM
(
(SELECT
?ID=CASE
??WHEN GROUPING(BANK_ID)=1 THEN '合計'
??WHEN GROUPING(ID)=1 THEN '小計'
??ELSE ID END
?,BANK_ID
??? ,SUM(AMT) AMT
??? ,ORDER_SIGN1=GROUPING(BANK_ID),ORDER_SIGN2=BANK_ID
??? ,ORDER_SIGN3=GROUPING(ID)
FROM #TB
GROUP BY BANK_ID,ID WITH ROLLUP
HAVING GROUPING(ID)=1
UNION ALL?--先得出表的統計,再加上表中的數據
SELECT ID
?,BANK_ID
?,AMT
?,ORDER_SIGN1=0,ORDER_SIGN2=BANK_ID
??? ,ORDER_SIGN3=0
?FROM #TB) A
LEFT JOIN?--為了顯示出OP_DATE、OPERATOR_NO
(SELECT ID
?,OP_DATE
?,OPERATOR_NO
FROM #TB) B ON A.ID = B.ID
) ORDER BY ORDER_SIGN1,ORDER_SIGN2,ORDER_SIGN3,OP_DATE
MYSQL教程GO
MYSQL教程--刪除測試
DROP TABLE #TB
MYSQL教程/*--測試結果
ID?BANK_ID?AMT?OP_DATE?OPERATOR_NO
3333?001?250.00?20121112?1234567
5555?001?300.00?20121210?1234567
1111?001?111.00?20121210?1234567
小計?001?661.00?NULL?NULL
4444?002?330.00?20121110?1234567
6666?002?150.00?20121112?1234567
2222?002?222.00?20121210?1234567
小計?002?702.00?NULL?NULL
合計?NULL?1363.00?NULL?NULL
--*/
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/1073.html