1
私はサービスとContractorIDのリストを返すクエリを持っています。私はContractorIDによって別の選択された声明にそれらを参加させるためにフィールドにこれらのサービスを詰め込む必要がありますが、私はそれを行う方法を理解できません。サブクエリからのSQLステートメント
サービスを一覧表示を選択し、「
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
ですこれは、以下を生成します。
例で、契約者の#16のために彼は、私はそれらを置く必要がある4つのサービスを提供しています別のSelectステートメントに参加してサービスと呼ばれる1つのフィールド 私は以下を試しましたが、エラーが発生します:
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
ご協力いただければ幸いです!
"Common Table Expressions"(CTE)を参照すると、サブクエリをカプセル化してテーブルのように見えるようになり、SQLコードを単純化することができます。それはずっと簡単に参加できます。問題を個々のCTEに分割してから、それらを結び付けて必要なクエリを構築することは、非常に便利なアプローチになります。 – pmbAustin
あなたはどんなエラーが起こりますか? –