gpt4 book ai didi

sql-server - 加入数据透视表

转载 作者:行者123 更新时间:2023-12-04 04:38:04 30 4
gpt4 key购买 nike

我有两个像 t1 和 t2 的表。
t1

ID                          class name
-- -----------
1 basket weaving
2 Underwater Basketing

t2
ID POS DAYS
-- ---- -----
1 1 M
1 2 T
1 3 W
1 4 TH
1 5 F
2 1 M
2 2 W
2 3 F

我想从两个表中获得以下输出。
1                             class                  DAYS
-- ----- -----
1 BASKET WEAVING MTWTHF
2 Underwater basketing MWF

最佳答案

查询1

SELECT ID, [class name], STUFF(List, 1 ,2, '') [DAYS]
FROM Table1 T1 CROSS APPLY
(
SELECT ', ' + [DAYS] [text()]
FROM Table2
WHERE ID = T1.ID
FOR XML PATH('')
) T2(List)

结果
ID                            class name             DAYS
-- ----- -----
1 BASKET WEAVING M,T,W,TH,F
2 Underwater basketing M,W,F

如果你想不用逗号,它会给你一个逗号分隔的日子列表,你可以使用以下内容
查询2
SELECT ID, [class name], List [DAYS]
FROM Table1 T1 CROSS APPLY
(
SELECT [DAYS] [text()]
FROM Table2
WHERE ID = T1.ID
FOR XML PATH('')
) T2(List)

结果
ID                            class name             DAYS
-- ----- -----
1 BASKET WEAVING MTWTHF
2 Underwater basketing MWF

查询3
SELECT ID, [class name], STUFF(List, 1 ,2, '') [DAYS], STUFF(T3.Rooms, 1 ,2, '') [Rooms]
FROM Table1 T1 CROSS APPLY
(
SELECT ', ' + [DAYS] [text()]
FROM Table2
WHERE ID = T1.ID
FOR XML PATH('')
) T2(List)
CROSS APPLY
(
SELECT '/' + Rooms [text()]
FROM Table2
WHERE ID = T1.ID
FOR XML PATH('')
) T3(Rooms)

你可以通过做这样的事情来添加另一列.....

关于sql-server - 加入数据透视表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19389837/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com