【发布时间】:2013-02-16 05:26:23
【问题描述】:
我已经搜索并找不到完全符合我需求的解决方案,也找不到我可以修改的解决方案。我有一个数据库表,为简单起见,我们会说它有三列(packageID、carrier 和sequence)。对于任何包裹,都可以有一个或多个承运人处理该包裹。我可以做一个像
SELECT packageID, carrier
FROM packageFlow
ORDER BY sequence
获取处理过如下包裹的所有人员的列表:
packageID, carrier
1, Bob
1, Jim
1, Sally
1, Ron
2, Reggie
2, Mary
2, Bruce
我需要的是将结果放入如下所示的行中:
packageID|carrier1|carrier2|carrier3|carrier4
1 |Bob |Jim |Sally |Ron
2 |Reggie |Mary |Bruce
Pivot 似乎没有做我需要的事情,因为我没有聚合任何东西,我也无法让 CTE 正常工作。我会很感激任何朝着正确方向的推动。
【问题讨论】:
-
您应该告诉我们您使用的是什么 RDBMS。 Oracle
LEAD可以帮助解决这类问题。 -
您尚未指定 DBMS,但this answer 为大多数 DMBS 提供了解决方案。
-
您希望将数据连接到单个列中吗?还是您想要单独的列?
-
以上引用的两个帖子都是为了将它们连接成一个列,我已经知道该怎么做。我需要多列。我更新了我的帖子以更清晰。
标签: sql sql-server sql-server-2005 pivot