【发布时间】:2018-12-27 00:54:55
【问题描述】:
我有这两张表:
表 A
pj item desc pj_id
------------------------------------
pjA iphone cell phone 1
pjA macbook laptop 2
pjB windows os 3
表 B
pj item pj_id version date
-----------------------------------------
pjA iphone 1 2 2010
pjA iphone 1 3 2011
pjA macbook 2 0 2000
pjB windows 3 5 2008
pjB windows 3 6 2014
pjB windows 3 7 2017
我想要
pj item desc detail1 detail2 detail3
---------------------------------------------------------
pjA iphone cell phone 2010(2) 2011(3)
pjA macbook laptop 2000(0)
pjB windows os 2008(5) 2014(6) 2017(7)
您可以看到“详细信息”列是动态的,因为表 B 中没有固定的项目版本号
我们知道,PIVOT 或 FOR XML PATH 在 SQL Server 2000 上不受支持。
所以我搜索了一些解决方案,但他们通常使用存储过程或函数,但我没有此数据库的权限。
对我来说最接近的答案可能是this,但我不知道如何在我的桌子上使用。
任何帮助将不胜感激。
【问题讨论】:
-
如果您从 Java 或 PHP 等应用程序语言调用 SQL Server,那么最好在表示层中处理此要求。我认为如果不使用动态 SQL,我们就无法做到这一点。
-
@TimBiegeleisen 是的,这也是一个解决方案,但我不知道如何在网格中绑定两个表(我使用 ASP.net)
-
从 SQL Server 2000 升级的时间是 年 之前。它不受支持,并且多年来一直不受支持。
-
我希望至少你的前端不是 Pascal 或其他一些古老的语言......
-
@GordonLinoff 好吧,有时你别无选择
标签: sql sql-server tsql sql-server-2000