1

「CaseID」列で並べられた以下の表があります。

ここに画像の説明を入力

コンマを使用してケースごとにすべての結果がグループ化されている、以下に表示される方法で出力を印刷する必要があります。他のすべてを取得するために以下のクエリを作成しましたが、すべての結果を追加する方法がわかりません。

SELECT 
    c.CaseID AS 'Case #',
    c.EventDate AS 'Date',
    CONCAT(d.DrugName+'-',m.ManufacturerName) AS 'Drug & Manufacturer',
    CONCAT(CONVERT(VARCHAR(10),c.Age)+' ',a.AgeUnitName) AS 'Age',
    c.Sex,
    ou.OutcomeName
FROM
    Consumes con
INNER JOIN 
    [Case] c ON con.FKCaseID = c.CaseID
INNER JOIN 
    Drug d ON d.DrugID = FKDrugID
INNER JOIN 
    Manufacturer m ON m.ManufacturerID = con.FKManufacturerID
INNER JOIN 
    AgeUnit a ON a.AgeUnitID = c.FKAgeUnitID
INNER JOIN 
    Case_Outcome oc ON oc.FKCaseID = c.CaseID
INNER JOIN 
    OutCome ou ON oc.FKOutcomeID = ou.OutcomeID
GROUP BY   
    c.CaseID, c.EventDate, d.DrugName, 
    m.ManufacturerName, c.Age, a.AgeUnitName, c.Sex, ou.OutcomeName

ここに画像の説明を入力

どうすればこれを達成できますか?ご意見をお聞かせください。

4

1 に答える 1

1

すべてのクエリを CTE に入れてから、次を使用しますFOR XML

;WITH cte AS (
--your query goes here
)

SELECT c.[Case #],
       c.[Date],
       c.[Drug & Manufacturer],
       c.[Age],
       c.[Sex],
       STUFF((SELECT ','+OutcomeName
       FROM cte
       WHERE c.[Case #] = [Case #]
       FOR XML PATH('')),1,1,'') as OutcomeName
FROM cte c
GROUP BY c.[Case #],
       c.[Date],
       c.[Drug & Manufacturer],
       c.[Age],
       c.[Sex]
于 2016-08-14T14:17:10.977 に答える