[英]SQL Server : sum a column
我已尽一切努力将“ Current
列加起来。 “ BF”,“ Current”和“ Future”都应为零,我只需要快速检查一下即可进行验证。
编码
SELECT
[AccountCode], [ExpensesCode], [CostCentre],
[NLYear], [NLPeriod],
SUM([BroughtForward]) AS 'BF',
SUM([CurrentPostings]) AS 'Current',
SUM([FuturePostings]) AS 'Future',
[Company]
FROM
[A_DW].[dbo].[NEW_ETL AccBalance]
WHERE
[Company] = 'GAR'
AND NLPeriod = '3' AND NLYear = '2017'
GROUP BY
[AccountCode], [ExpensesCode], [CostCentre], [NLYear], [NLPeriod], [Company]
这是Autoline数据库,数据是试用余额,因此如下所示:
+-----+------+-----+------+---+---------+---------+------+
| 100 | 8000 | 700 | 2017 | 3 | 1000.00 | 2000.00 | 0.00 |
| 100 | 8001 | 700 | 2017 | 3 | 1500.00 | 4500.00 | 0.00 |
+-----+------+-----+------+---+---------+---------+------+
结果应为6500.00(2000.00 + 4500.00)
根据示例数据,您的列ExpenseCode
包含多个不同的值。 如果要将这两行折叠在一起,则需要决定如何处理该列。 这是一个选择:忽略它!
SELECT
[AccountCode],
--[ExpensesCode], --comment it out, or delete entirely
[CostCentre],
[NLYear], [NLPeriod],
SUM([BroughtForward]) AS 'BF',
SUM([CurrentPostings]) AS 'Current',
SUM([FuturePostings]) AS 'Future',
[Company]
FROM
[A_DW].[dbo].[NEW_ETL AccBalance]
WHERE
[Company] = 'GAR'
AND NLPeriod = '3' AND NLYear = '2017'
GROUP BY
[AccountCode],
--[ExpensesCode], -- also comment out here
[CostCentre],
[NLYear],
[NLPeriod],
[Company]
您获得的行数等于以下各项的不同组合数: [AccountCode],[ExpensesCode],[CostCentre],[NLYear],[NLPeriod]
如果您只需要一行,只需从查询中删除那些列,然后保留总和列即可。
查询可以是:
SELECT
SUM([BroughtForward]) AS 'BF',
SUM([CurrentPostings]) AS 'Current',
SUM([FuturePostings]) AS 'Future'
FROM
[A_DW].[dbo].[NEW_ETL AccBalance]
WHERE
[Company] = 'GAR'
AND NLPeriod = '3' AND NLYear = '2017'
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.