我在这里查找了许多关于XML路径和内容的问题和答案,但我无法使其适用于我的查询。我知道这是用户错误,但我不能弄清楚。感谢您的帮助。
下面是我的示例查询:
SELECT DISTINCT
map.Name
,loc.MainAddress
,loc.MainCity
,loc.MainStateProvince_MisStateProvID
,loc.MainZipPostal
FROM meditech_livefdb.dbo.MisLoc_Main loc
LEFT OUTER JOIN meditech_livefdb.dbo.MisNomenclatureMap_Main map ON (loc.SourceID = map.SourceID AND loc.NomenclatureMap = map.MisNomenclatureMapID)
WHERE loc.MainAddress = '123 Main Street'map.Name列出了每个地址位置提供的服务。大多数地点都提供多种服务。我想要一个不同的地址位置列表与一个组合的字段显示在该位置提供的所有服务。我试过下面的方法,但根本不起作用。
SELECT DISTINCT
loc.MainAddress
,loc.MainCity
,loc.MainStateProvince_MisStateProvID
,loc.MainZipPostal
,STUFF((SELECT ', ' + map.Name FOR XML PATH('')), 1, 1, '') AS Services
FROM meditech_livefdb.dbo.MisLoc_Main loc
LEFT OUTER JOIN meditech_livefdb.dbo.MisNomenclatureMap_Main map ON (loc.SourceID = map.SourceID AND loc.NomenclatureMap = map.MisNomenclatureMapID)
WHERE loc.MainAddress = '123 Main Street'这与第一个查询给出的结果相同。看到我做错什么了吗?谢谢。
发布于 2020-06-29 22:25:24
尝试在您的stuff子句中单独引用映射表(将map.ID替换为您唯一的id字段的名称):
STUFF((SELECT ',' + map2.Name
FROM meditech_livefdb.dbo.MisNomenclatureMap_Main map2
WHERE map.ID = map2.ID FOR XML PATH('')
), 1, 1, '') AS Serviceshttps://stackoverflow.com/questions/62639152
复制相似问题