Sql server SQL Server使用STUFF和GROUP BY将数据复制到另一个表

Sql server SQL Server使用STUFF和GROUP BY将数据复制到另一个表,sql-server,group-by,Sql Server,Group By,我试图将记录从一个表插入到另一个SQL Server,按相同字段分组,并将源中不同字段的内容连接到目标表中的单个字段中 STUFF函数在SSMS中进行了测试,但我似乎无法将其集成到我的INSERT/SELECT语句中,我认为问题可能在于我使用了GROUP BY和MAX INSERT INTO [ProductsImported] (image_url, product_id, item_size) SELECT image_url, MAX(product

我试图将记录从一个表插入到另一个SQL Server,按相同字段分组,并将源中不同字段的内容连接到目标表中的单个字段中

STUFF函数在SSMS中进行了测试,但我似乎无法将其集成到我的INSERT/SELECT语句中,我认为问题可能在于我使用了GROUP BY和MAX

INSERT INTO [ProductsImported] 
     (image_url, product_id, item_size) 

SELECT 
     image_url, 
     MAX(product_id), 
     STUFF((SELECT ',' + item_size AS [text()] 
          FROM (SELECT DISTINCT image_url FROM [ProductsTemp]) x 
          FOR XML PATH ('')),1,1,'')

FROM [ProductsTemp] 
WHERE retailer_name = 'Retailer Name' 
GROUP BY image_url 
我对语句进行了一些删减,以删除其他字段并使其更易于阅读,它们都是像MAXproduct\u id一样被选中的

我得到的错误是:

[SQL Server]无法对包含聚合或子查询的表达式执行聚合函数


我是否过于雄心勃勃,试图在一次查询中完成一些不可能的事情?

请为max product\u id提供别名

 INSERT INTO [ProductsImported] 
         (image_url, product_id, item_size) 

    SELECT 
         image_url, 
         MAX(product_id) As product_id, 
         STUFF((SELECT ',' + item_size AS [text()] 
              FROM (SELECT DISTINCT image_url FROM [ProductsTemp]) x 
              FOR XML PATH ('')),1,1,'') As item_size

    FROM [ProductsTemp] 
    WHERE retailer_name = 'Retailer Name' 
    GROUP BY image_url,product_id,item_size 

谢谢这让我更进一步,我现在从stuff函数得到了很长的结果,但我希望能从这里找到答案。