Sql server 2008 同一查询中的SQL累积和非累积之和
您好,我想知道是否有一种方法可以在同一个查询中获得累积和非累积合计。我有一个包含以下字段的表: 部门、销售人员、财务月、活动、成本 我想要的是两个总数,一个是销售人员每月的总数,另一个是一年到目前为止的总数。我在设置两个不同的where标准以使其工作时遇到问题Sql server 2008 同一查询中的SQL累积和非累积之和,sql-server-2008,sum,Sql Server 2008,Sum,您好,我想知道是否有一种方法可以在同一个查询中获得累积和非累积合计。我有一个包含以下字段的表: 部门、销售人员、财务月、活动、成本 我想要的是两个总数,一个是销售人员每月的总数,另一个是一年到目前为止的总数。我在设置两个不同的where标准以使其工作时遇到问题 非常感谢需要这些帮助吗 SELECT * FROM ( SELECT Department, SalesPerson , SUM(fin_month) SalesPerson_Sum FROM [TABLE_NAME] GRO
非常感谢需要这些帮助吗
SELECT
*
FROM
(
SELECT
Department, SalesPerson
, SUM(fin_month) SalesPerson_Sum
FROM
[TABLE_NAME]
GROUP BY Department, SalesPerson
) a
INNER JOIN
(
SELECT
Department
, SUM(fin_month) AS Department_Sum
FROM
[TABLE_NAME]
GROuP BY
Department
) b
ON
a.Department = b.Department
此解决方案使用,并根据相应的月度总计,获取每个部门中每个销售人员每个财务月的累计总计
;WITH
monthlytotals AS (
SELECT
Department,
SalesPerson,
fin_month,
MonthlyTotal = SUM(cost),
rn = ROW_NUMBER() OVER (PARTITION BY Department, SalesPerson
ORDER BY fin_month)
FROM atable
GROUP BY Department, SalesPerson, fin_month
),
alltotals AS (
SELECT
Department,
SalesPerson,
fin_month,
MonthlyTotal,
CumulativeTotal = MonthlyTotal,
rn
FROM monthlytotals
WHERE rn = 1
UNION ALL
SELECT
m.Department,
m.SalesPerson,
m.fin_month,
m.MonthlyTotal,
CumulativeTotal = a.CumulativeTotals + m.MonthlyTotal,
m.rn
FROM monthlytotals m
INNER JOIN alltotals a
ON m.Department = a.Department
AND m.SalesPerson = a.SalesPerson
AND m.rn = a.rn + 1
)
SELECT
Department,
SalesPerson,
fin_month,
MonthlyTotal,
CumulativeTotal
FROM alltotals
我在这里花了大约一个小时才看到这一点,并在5分钟内完成。