我已经阅读了 SQL 中的 pivot 并查看了大量示例,但我无法让它以我想要的方式工作。我有一个跟踪员工购买的交易历史表。
例子:
Employee | Date | Value
1234 | 2012-11-13 | 20.23
我需要为所有员工创建一个每月总销售额的摘要,如下所示:
Employee | Jan | Feb | Mar | ... | Dec| YearTotal
我对分组和获取每月总数感到困惑。谢谢你的帮助!
编辑好的,如果我没有准备好请求帮助,我深表歉意。我大部分时间都在为此工作,并且感到沮丧和疲倦。我有超过 10 年的 SQL 经验,但这是我第一次尝试进行数据透视查询,我只是不明白它们应该如何工作以及如何使其工作满足我的需要。我需要在星期一早上生成这些数字,所以大约需要 7 个小时。我最后的努力是每个月运行一个单独的查询,然后将数据转储到 Excel 中以生成报告。我希望这对于最终用户将来运行是无缝的。
这是我的尝试的简化版本,它是从 MSDN 的示例中重新设计的:
SELECT CUSTOMER_NUMBER, [jan], [feb]
FROM
(
SELECT month(transaction_date)
FROM customer_item_purchases
WHERE TRANSACTION_DATE BETWEEN '2011-11-16' AND '2012-11-15'
)
PIVOT
(SUM(SALES_VALUE) IN ([JAN], [Feb]))
AS pvt
我需要指定日期之间每个月的总月销售额。Nov 将显示在月份的开始和结束列。源表很简单:Employee、transdate、receipt、location 等。