【发布时间】:2016-07-11 20:51:10
【问题描述】:
我想在下面实现,但不知道从哪里开始:
我从 SQL 查询得到以下输出:
LocationID ItemID ItemName Price1 Price2
---------------------------------------------------------
1 101 A 100 150
1 102 B 220 170
2 103 C 120 155
2 104 D 123 160
3 105 E 158 179
3 106 F 160 180
现在我想让我的输出看起来像这样:
LocationID 1 LocationID 2
ItemID ItemName Price1 Price2 Price1 Price2
---------------------------------------------------------
101 A 100 150 0 0
102 B 220 170 0 0
103 C 0 0 120 155
104 D 0 0 123 160
105 E 0 0 0 0
106 F 0 0 0 0
我如何在 SQL 中做同样的事情,如果有人可以指导我,不胜感激。
P.S ItemID 和 ItemName 来自一个与 LocationID 连接的主表。
【问题讨论】:
-
您标记 3 个不同版本的 SQL Server 是否有原因?
-
您可以使用交叉表执行此操作,也称为条件聚合。第一个问题是,总是有两个位置吗?如果位置的数量不同,则采用不同的方法。
-
@SeanLange 是的,位置固定在这里
-
我正要发布一个答案,但它没有意义。输出中的行数相同。对于输出位置 2 中的每一行,值都是相同的。它们应该是什么?它们来自哪里??
-
@SeanLange Ohh..对不起,我现在已经更正了我的帖子,
标签: sql sql-server sql-server-2008 sql-server-2012 sql-server-2008-r2