【发布时间】:2012-01-16 06:45:16
【问题描述】:
PONumbe LNSKU LNStyleNo LNStyl LNColor counter SizeDescription
164874 1059656 12345678910 LALALA RED 1 050B
164874 1059656 12345678910 LALALA RED 2 055B
我想根据 PONumbe LNSKU 的不同组合将 SizeDescription 和 counter 的值转换为多列
输出应该是这样的
PONumbe LNSKU LNStyleNo LNStyl LNColor counter SizeDesc50 SizeDesc50_Count SizeDesc55 SizeDesc55_Count
164874 1059656 12345678910 LALALA RED 1 050B 1 055B 2
我不知道如何为此编写 T-SQL 查询。
谢谢
【问题讨论】:
-
每个键总是有两行(POnumbe)吗?可以有不止050B和055B吗?
-
这在 SQL 中当然是可能的,但我几乎会尝试用脚本语言编写它。这可能会更容易,特别是如果 SizeDescription 不仅仅包含这两个值。'
-
如果你只有 2 行并排,这在 SQL 中很容易。或者你想要 MIN/MAX 等。如果你有 4 行,那么在你只有 2 行的额外列中放置什么? 15 行给出 15 组列?如果有其他问题,请给我们更多示例数据
-
@Sparky 可能不止 050B 和 055B。
-
@gbn 可能的值是 055B 60B 65B 70B 到 13B 所以我最多可以有 26 行。其中一些行完全有可能丢失。如果这些行丢失,我仍然希望在各个列(SizeDesc50、SizeDesc55、SizeDesc60 等)中存在值,但在 Count 列(SizeDesc50_count、SizeDesc55_count 等)中,我将默认值为 0。谢谢
标签: sql sql-server-2008 crosstab