多个结果行成单行

时间:2013-12-29 21:21:53

标签: sql sql-server

我有4个表:商店,终端,StoreTerminals和地址。实际上,每个商店都有多个终端,但只有一个地址,所以我试图得到的结果基本上显示每行一个商店有多个终端和单个地址。我尝试连接这些表会为同一个商店生成多行:(

StoreTerminals表中的记录只有一个StoreID和一个TerminalID,因此如果一个商店有多个TerminalId,那么就会有多个记录。

我看到了另一个问题,即群组连接接近我想要的但是这会将多个终端的结果保留在同一列中,这是我不想要的。我需要每个终端都在它自己的列中。

有谁知道如何做到这一点?

2 个答案:

答案 0 :(得分:1)

您应该查看Sql server中的pivot功能。这可以让你为一个终端产生一列。

http://blogs.msdn.com/b/spike/archive/2009/03/03/pivot-tables-in-sql-server-a-simple-sample.aspx

答案 1 :(得分:1)

听起来你需要转动你的数据。

存储ID,存储地址,终端ID 1,终端ID 2等

这是pivot命令的链接。它将行转换为列。 unpivot命令是相反的。

http://technet.microsoft.com/en-us/library/ms177410(v=sql.105).aspx