Sql server 2008 同一查询中的SQL累积和非累积之和

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

您好,我想知道是否有一种方法可以在同一个查询中获得累积和非累积合计。我有一个包含以下字段的表: 部门、销售人员、财务月、活动、成本

我想要的是两个总数,一个是销售人员每月的总数,另一个是一年到目前为止的总数。我在设置两个不同的where标准以使其工作时遇到问题


非常感谢

需要这些帮助吗

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分钟内完成。