【发布时间】:2019-03-05 03:06:20
【问题描述】:
我想在 sql 中输出一个包含每个客户每月销售额的表。每列应对应另一个月份。
第一列应该是当前月份示例我的 sql 列是:
- 客户
- 发票日期
- 销售
原来的表格是这样的:
+------------+------------+---------+
| Customer | invdate | sales |
+------------+------------+---------+
| Best Buy | 03-12-2019 | 433 |
| Walmart | 03-15-2019 | 543 |
| Home Depot | 12-12-2018 | 32 |
+------------+------------+---------+
期望的输出:
+------------+----------+--------+--------+--------+--------+----------+
| Customer | March 19 | Feb 19 | Jan 19 | Dec 18 | Nov 18 | Oct 18 |
+------------+----------+--------+--------+--------+--------+----------+
| Home Depot | 100 | 300 | 244 | 32 | 322 | 43 |
| Walmart | 543 | 222 | 234 | 12 | 234 | 34 |
| Bestbuy | 433 | 323 | 323 | 23 | 433 | 34 |
+------------+----------+--------+--------+--------+--------+----------+
【问题讨论】:
-
请发布您尝试过的内容 - 所以不是代码编写服务。
-
您可以在 SQL 中使用 PIVOT 执行此操作。按照下面的链接获取示例和帮助。[链接]stackoverflow.com/questions/15931607/…
-
您好,您必须使用带有动态 sql 的 pivot 并执行,请参阅 Microsoft 文档并在分享您的查询后
-
这个输出是用什么工具渲染的?虽然动态 SQL 语句可以解决问题,但它也开始在 SQL 中引入数据格式;这通常更适合在显示/报告工具中执行。
标签: sql sql-server tsql pivot