【发布时间】:2015-10-12 12:42:55
【问题描述】:
我尝试使用诸如 Pivot 之类的东西寻找解决问题的方法,但它们似乎没有给出我正在寻找的输出,因为它们似乎将行中的特定值映射到列。
我有两列,第一列包含“关键”字段,第二列正在更改数据。例如
╔══════════╦══════════════════╗
║ Project ║ Location ║
╠══════════╬══════════════════╣
║ ProjectA ║ \\Server1\Share1 ║
║ ProjectA ║ \\Server2\Share1 ║
║ ProjectB ║ \\Server6\Share2 ║
║ ProjectB ║ \\Server1\Share2 ║
║ ProjectB ║ \\Server2\Share3 ║
║ ProjectC ║ \\Server8\Share2 ║
║ ProjectD ║ \\Server5\Share9 ║
║ ProjectD ║ \\ServerX\ShareY ║
╚══════════╩══════════════════╝
我想要实现的输出如下:
╔══════════╦══════════════════╦══════════════════╦══════════════════╦═════════╦══════════╦═════════╗
║ Project ║ Column1 ║ Column2 ║ Column3 ║ Column4 ║ Column5 ║ ColumnX ║
╠══════════╬══════════════════╬══════════════════╬══════════════════╬═════════╬══════════╬═════════╣
║ ProjectA ║ \\Server1\Share1 ║ \\Server2\Share1 ║ NULL ║ NULL ║ NULL ║ ║
║ ProjectB ║ \\Server1\Share2 ║ \\Server2\Share3 ║ \\Server6\Share2 ║ NULL ║ NULL ║ ║
║ ProjectC ║ \\Server8\Share2 ║ NULL ║ NULL ║ NULL ║ NULL ║ ║
║ ProjectD ║ \\Server5\Share9 ║ \\ServerX\ShareY ║ NULL ║ NULL ║ NULL ║ ║
╚══════════╩══════════════════╩══════════════════╩══════════════════╩═════════╩══════════╩═════════╝
如果该列没有数据,那么它将为 NULL。
位置列中不同值的数量是动态的,所需的输出是通用列名,在相应的项目值旁边具有不同的位置值。
希望有人能帮我解决这个问题,因为它让我发疯!
提前致谢。
忍者
【问题讨论】:
-
为什么
PROJECT D的结果中有 2 条记录?而且没有一条记录ProjectD \\Server5\Share9 \\ServerX\ShareY -
那是我的错误,它从盒子底部掉了,所以我没有注意到它。已更新帖子。
标签: sql sql-server tsql