gpt4 book ai didi

sql-server - 来自子查询的 SQL 内容

转载 作者:行者123 更新时间:2023-12-05 02:18:59 25 4
gpt4 key购买 nike

我有一个返回服务和 ContractorID 列表的查询。我需要将这些服务填充到一个字段中,以便将它们与 ContractorID 的另一个选择语句连接起来,但我不知道该怎么做。

列出服务的选择是“

    SELECT DISTINCT SM.ContractorID,

CASE WHEN S.bitRestrictedSelection = 1
THEN S.vchDescription + '*'
ELSE S.vchDescription
END AS vchDescription
FROM tblAscServiceRegionToOperator SRTO
INNER JOIN tblServiceMatrix SM
ON SRTO.OperatorID = 12624
AND SM.ServiceRegionID = SRTO.ServiceRegionID
AND SM.bitPrimaryService = 1
INNER JOIN tblServices S
ON S.ServiceID = SM.ServiceID

这会产生以下内容:

enter image description here

在示例中,对于 Contractor #16 He has 4 services 我需要通过加入另一个 Select 语句将它们放在一个名为 services 的字段中我尝试了以下操作,但出现错误:

    Select DISTINCT CompanyID, vchCompanyName as CompanyName,vchFIDNumber,vchPrimContactName, vchPrimContactEmail 
,stuff((','
SELECT DISTINCT
SM.ContractorID,

CASE WHEN S.bitRestrictedSelection = 1
THEN S.vchDescription + '*'
ELSE S.vchDescription
END AS vchDescription
FROM tblAscServiceRegionToOperator SRTO
INNER JOIN tblServiceMatrix SM
ON SRTO.OperatorID = 12624
AND SM.ServiceRegionID = SRTO.ServiceRegionID
AND SM.bitPrimaryService = 1
INNER JOIN tblServices S
ON S.ServiceID = SM.ServiceID
FOR XML PATH('')
), 1, 1, '') as Services from tblCompany

非常感谢任何帮助!!!

最佳答案

下面的查询会起作用:

SELECT SS.contractor Contractor,
STUFF((SELECT '; ' + US.vchdescription
FROM ServicesList US
WHERE US.contractor = SS.contractor
FOR XML PATH('')), 1, 1, '') [Services]
FROM ServicesList SS
GROUP BY SS.contractor
ORDER BY 1

我创建了一个表并在其中插入了两行,contractor = 16,以便您理解。您可以使用评论中给您的建议,将第一个选择包装到 CTE 中,然后在该 CTE 上执行 STUFF 函数.

您可以查看此查询的演示 here .

关于sql-server - 来自子查询的 SQL 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43878323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com