【发布时间】:2015-03-18 14:26:31
【问题描述】:
我正在尝试将记录从一个表插入到另一个表 (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
我已将语句稍微删减以删除其他字段并使其更易于阅读,它们都像 MAX(product_id) 一样被选中。
我得到的错误是:
[SQL Server]无法对包含聚合或子查询的表达式执行聚合函数。
我是否过于雄心勃勃并试图在单个查询中完成一些不可能的事情?
【问题讨论】:
标签: sql-server group-by