我有得到一个问题串接值以下选择运行:GROUP BY与在选择列表
SET @final = '<CoutUnitaire>'
SELECT DISTINCT
@final = COALESCE(@final + '', ',') +
'<row><Intervention>' + Code_Type_Mode + ' ' + Code_Complement + ' ' + Code_Phytocide + '</Intervention>' +
'<cout_moyen>' + CAST(CAST(AVG(Travail.cout_par_ha) AS DECIMAL(10,2)) AS VARCHAR) + '</cout_moyen>' +
'</row>'
FROM Travail
INNER JOIN Budget ON Travail.ID_Budget = Budget.ID_Budget
INNER JOIN Territoire ON Budget.ID_Territoire = Territoire.ID_Territoire
INNER JOIN Complement ON Travail.ID_Complement = Complement.ID_Complement
INNER JOIN Phytocide ON Travail.ID_Phytocide = Phytocide.ID_Phytocide
INNER JOIN Type_Mode ON Travail.ID_Type_Mode = Type_Mode.ID_Type_Mode
INNER JOIN #Years ON Budget.Annee_Budgetaire = #Years.intYear
WHERE dbo.Budget.ID_Territoire IN (SELECT intTerritoryID FROM #Territories) AND (@circref = 0 OR circref = @circref)
GROUP BY Code_Type_Mode + ' ' + Code_Complement + ' ' + Code_Phytocide
ORDER BY Code_Type_Mode + ' ' + Code_Complement + ' ' + Code_Phytocide
SET @final = @final + '</CoutUnitaire>'
它返回:
列“Type_Mode.Code_Type_Mode”在选择列表中无效因为它不包含在聚合函数或GROUP BY子句中。
列'Complement.Code_Complement'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。
列'Phytocide.Code_Phytocide'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。
限制:
运行SQL Server 2000,所以我没有使用FOR XML填充这个变量的选择。需要手动构建它。
我该如何着手以正确的顺序获取这些行,同时仍然将它们连接成一个字符串?
构建临时表,然后在完成这个技巧之后再进行合并。谢谢! –
太棒了!听到那个消息很开心。 –