【发布时间】:2021-03-02 13:43:10
【问题描述】:
表-1
| OrderDate | CustomerNo | ProductId | Quantity |
|---|---|---|---|
| 2021-03-01 | 1 | 1 | 10 |
| 2021-03-01 | 1 | 3 | 20 |
| 2021-03-02 | 1 | 2 | 15 |
| 2021-03-02 | 1 | 3 | 10 |
| 2021-03-03 | 1 | 1 | 10 |
| 2021-03-03 | 1 | 5 | 25 |
此表还包含其他客户的数据以及客户 2、3、4 ...
表 2
| ProductId | ProductName |
|---|---|
| 1 | P1 |
| 2 | P2 |
| 3 | P3 |
| 4 | P4 |
| 5 | P5 |
产品不固定,可加P6,P7 ...
结果:
| OrderDate | P1 | P2 | P3 | P4 | P5 |
|---|---|---|---|---|---|
| 2021-03-03 | 10 | 25 | |||
| 2021-03-02 | 15 | 10 | |||
| 2021-03-01 | 10 | 20 |
我需要这个结果,这可能使用 Pivot / UnPivot
【问题讨论】:
-
到目前为止你尝试了什么?
-
Pivot 是最简单的,但您可以使用内联选择来完成
-
Select-subqueries 可用于 FROM-、JOIN- 和 WHERE 语句,但绝不应在 SELECT 部分中使用,因为它对性能极为不利。但在这种情况下,这些选项都不是最佳选择。
-
这能回答你的问题吗? T-SQL dynamic pivot
-
Pivot 有什么问题?问题在于 SQL 中的列,没有办法解决它,我们必须以 some 方式定义它们,如果动态 SQL 是您的解决方案,那么我只需动态构造 PIVOT 查询。 ..
标签: sql sql-server select