ste*_*ris 1 sql t-sql sql-server sum
我正在尝试开发一个SQL字段,它是除前两个行之外的所有列的总和.下面是我的代码,它返回MonthYear,Total,Sum1,Sum2和Sum3列.我想要一个总和为Sum1,Sum2和Sum3的FinalSum.这用于反击检查总列的准确性.有没有办法做到这一点?运行Microsoft SQL Server 2005 - T-SQL
SELECT MonthYear,
COUNT(*) AS Total,
ISNULL(
SUM(
CASE
WHEN Status='Sum1' THEN 1
ELSE 0
END
)
,0) AS [Sum1],
ISNULL(
SUM(
CASE
WHEN Status='Sum2' THEN 1
ELSE 0
END
)
,0) AS [Sum2],
ISNULL(
SUM(
CASE
WHEN Status='Sum3' THEN 1
ELSE 0
END
)
,0) AS [Sum3]
FROM tablename
GROUP BY
MonthYear
Run Code Online (Sandbox Code Playgroud)
你错过了一个FROM查询.无论如何,一种方法是使用派生表:
SELECT *, [Sum1]+[Sum2]+[Sum3] AS TotalSum
FROM (Your Current Select Here) AS T
Run Code Online (Sandbox Code Playgroud)
对于SQL Server 2005+,您还可以使用CTE:
;WITH CTE AS
(
Your Current Select Here
)
SELECT *, [Sum1]+[Sum2]+[Sum3] AS TotalSum
FROM CTE
Run Code Online (Sandbox Code Playgroud)