我想将未知数量的行合并为一个

时间:2014-03-27 17:11:33

标签: sql-server-2012

以下是数据示例:

表:驱动程序

ID    | FNAME | LNAME
------+-------+------
WR558 | WILL  | RIKER
WW123 | WALT  | WHITE

表:事故

DRIVER | ACCIDENT_NBR | ACCI_DATE  | ACCI_CITY | ACCI_ST
-------+--------------+------------+-----------+--------
WW123  | 4-7777       | 2014-01-01 | Chicago   | IL
WW123  | 4-7782       | 2014-01-03 | Houston   | TX
WW123  | 4-7988       | 2014-01-15 | El Paso   | NM

此表中可能会列出此驾驶员的任意数量的事故,或者可能没有

我需要看到的是:

ID    | FNAME | LNAME  | ACCIDENT1_NBR | ACCI1_DATE | ACCI1_CITY | ACCI1_ST | ACCIDENT2_NBR | ACCI2_DATE | ACCI2_CITY | ACCI2_ST | ACCIDENT3_NBR | ACCI3_DATE | ACCI3_CITY | ACCI3_ST | ... | ACCIDENT10_NBR | ACCI10_DATE | ACCI10_CITY | ACCI10_ST
------+-------+--------+---------------+------------+------------+----------+---------------+
WR558 | WILL  |  RIKER |               |            |            |          |               | ...
WW123 | WALT  |  WHITE | 4-7777        | 2014-01-01 | Chicago    | IL       | 4-7782        | ...

我需要将驾驶员信息和最近发生的10起事故(如果有的话)拉到这一行。我不确定是否需要使用PIVOT表或FETCH。无论哪种方式,我都不确定如何根据需要迭代到列中。

非常感谢任何人的帮助!

我正在使用SQL Server 2012,这最终将被拉入.XLS SSRS文件。我包含的管道仅用于显示,不会成为最终结果的一部分

1 个答案:

答案 0 :(得分:0)

你应该使用PIVOT作为丑陋,因为如果编码C#解决方案不可行,它将是正确的选择。

以下是一个示例:Simple Pivot sample