Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在sql中连接多个同名行?_Sql_Sql Server - Fatal编程技术网

在sql中连接多个同名行?

在sql中连接多个同名行?,sql,sql-server,Sql,Sql Server,我似乎无法得到我需要的输出,有人能看出我做错了什么吗 输出应为 1 | Adam | Math, Science 2 | Tony | Math 3 | Erica | English, History 1 | Adam | Math, Science, English, History 2 | Tony | Math, Science, English, History 3 | Erica | Math, Science, English, History 如果留下负面结果,请留下原因,问题出

我似乎无法得到我需要的输出,有人能看出我做错了什么吗

输出应为

1 | Adam | Math, Science 2 | Tony | Math 3 | Erica | English, History 1 | Adam | Math, Science, English, History 2 | Tony | Math, Science, English, History 3 | Erica | Math, Science, English, History
如果留下负面结果,请留下原因,问题出现在
中,其中T.WM=T.WM
语句中

SELECT *, STUFF((
            SELECT DISTINCT ', ' + Class
            FROM T as T2
            WHERE T.WM = T2.WM
            FOR XML PATH('')), 1, 2, '')
FROM (
    SELECT DISTINCT WM
    FROM T
) T

我会使用
CTE

with cte as (
    select *, max(id) over (PARTITION by wm) NewId
    from t
)
SELECT NewId, WM, STUFF((
            SELECT DISTINCT ', ' + Class
            FROM cte
            WHERE C.WM = WM
            FOR XML PATH('')), 1, 2, '')
FROM cte c
group by NewId, WM

检查一下,我认为我的WHERE子句根本不起作用。您应该给内表一个不同的别名。@Sam如果我的答案解决了您的问题,请将其标记为“答案”