Sql 参考表格的汇总结果
我有一些数据库表。一个表调用GL,并有GL\u id、GL\u type\u id等列。 另一个是总账交易表,有总账id、交易金额等。我想得到交易金额的总账类型id的汇总。我为此写了一个查询Sql 参考表格的汇总结果,sql,sql-server,Sql,Sql Server,我有一些数据库表。一个表调用GL,并有GL\u id、GL\u type\u id等列。 另一个是总账交易表,有总账id、交易金额等。我想得到交易金额的总账类型id的汇总。我为此写了一个查询 SELECT GL.CHAT_ACC_ID,GL.CHAT_ACC_NAME,GL.GL_TYPE_ID,GL.GL_TYPE_NAME, SUM(CASE WHEN tr.CR_DR = 'CR' AND TR.BRANCH_CODE=1000 AND TR.TRAN_DATE<'20
SELECT GL.CHAT_ACC_ID,GL.CHAT_ACC_NAME,GL.GL_TYPE_ID,GL.GL_TYPE_NAME,
SUM(CASE WHEN tr.CR_DR = 'CR' AND TR.BRANCH_CODE=1000 AND TR.TRAN_DATE<'2000-01-01' THEN TR.GL_TRN_AMT ELSE 0
END) AS CR_BEFORE,
SUM(CASE WHEN tr.CR_DR='DR' AND TR.BRANCH_CODE=1000 AND TR.TRAN_DATE<'2000-01-01' THEN TR.GL_TRN_AMT ELSE 0
END) AS DR_BEFORE,
SUM(CASE WHEN tr.CR_DR = 'CR' AND TR.BRANCH_CODE=1000 AND TR.TRAN_DATE BETWEEN '2000-01-01' AND '2010-01-01' THEN TR.GL_TRN_AMT ELSE 0
END) AS CR_BETWEEN,
SUM(CASE WHEN tr.CR_DR = 'DR' AND TR.BRANCH_CODE=1000 AND TR.TRAN_DATE BETWEEN '2000-01-01' AND '2010-01-01' THEN TR.GL_TRN_AMT ELSE 0
END) AS DR_BETWEEN
FROM [COREBANKER1].[dbo].[GL_MAIN] as GL
LEFT JOIN [COREBANKER1].[dbo].[GL_DAILY_TRN] AS TR ON GL.GL_ID = TR.GL_CODE
GROUP BY GL.CHAT_ACC_ID,GL.CHAT_ACC_NAME,GL.GL_TYPE_ID,GL.GL_TYPE_NAME
ORDER BY GL.GL_ID
选择总账聊天账户ID、总账聊天账户名称、总账类型ID、总账类型名称,
SUM(当tr.CR\u DR='CR'和tr.BRANCH\u CODE=1000和tr.TRAN\u DATE时,我认为您只需要在select中添加以下语句
Sum(TR.GL_TRN_AMT) over() as TotalSum
我找到了解决办法……:D
SELECT CG.CHART_ACC_ID,CG.CHART_ACC_NAME,CG.GL_TYPE_ID,CG.GL_TYPE_NAME,
SUM(CASE WHEN tr.CR_DR = 'CR' AND TR.BRANCH_CODE=1000 AND TR.TRAN_DATE<'2000-01-01' AND CG.CHART_ACC_ID=GL.CHAT_ACC_ID AND TR.GL_CODE=GL.GL_ID THEN TR.GL_TRN_AMT ELSE 0
END) AS CR_BEFORE,
SUM(CASE WHEN tr.CR_DR='DR' AND TR.BRANCH_CODE=1000 AND TR.TRAN_DATE<'2000-01-01' AND CG.CHART_ACC_ID=GL.CHAT_ACC_ID AND TR.GL_CODE=GL.GL_ID THEN TR.GL_TRN_AMT ELSE 0
END) AS DR_BEFORE,
SUM(CASE WHEN tr.CR_DR = 'CR' AND TR.BRANCH_CODE=1000 AND TR.TRAN_DATE BETWEEN '2000-01-01' AND '2010-01-01' AND CG.CHART_ACC_ID=GL.CHAT_ACC_ID AND TR.GL_CODE=GL.GL_ID THEN TR.GL_TRN_AMT ELSE 0
END) AS CR_BETWEEN,
SUM(CASE WHEN tr.CR_DR = 'DR' AND TR.BRANCH_CODE=1000 AND TR.TRAN_DATE BETWEEN '2000-01-01' AND '2010-01-01' AND CG.CHART_ACC_ID=GL.CHAT_ACC_ID AND TR.GL_CODE=GL.GL_ID THEN TR.GL_TRN_AMT ELSE 0
END) AS DR_BETWEEN
FROM[COREBANKER1].[dbo].[GL_DAILY_TRN] AS TR, [COREBANKER1].[dbo].[GL_MAIN] as GL full JOIN [COREBANKER1].[dbo].GL_CHART_ACC AS CG
ON GL.CHAT_ACC_ID=CG.CHART_ACC_ID
GROUP BY CG.CHART_ACC_ID,CG.CHART_ACC_NAME,CG.GL_TYPE_ID,CG.GL_TYPE_NAME
ORDER BY CG.CHART_ACC_ID
选择CG.CHART\u ACC\u ID、CG.CHART\u ACC\u NAME、CG.GL\u TYPE\u ID、CG.GL\u TYPE\u NAME、,
SUM(当tr.CR_DR='CR'和tr.BRANCH_CODE=1000以及tr.TRAN_DATEsummey?summey?summy时的情况)让我提出一些建议:不要忽略拼写检查器提供的红色下划线。好的,谢谢。我会更正。如果可能,请提供示例输入和预期输出。