0
stuff()関数の記事を読みましたが、これは私のクエリに使用する関数だと思います。Stuff()関数を使用して複数の行を結合する
しかし、このポストでさらに例を取り上げて列を追加し、私の理由IDと一致する理由テキストを別の表から引き出すサブクエリを含める必要があります。私は、日付、patientID、理由、otherNotesを持つテーブルを持っている...私はなるように1列に、各患者および各日付のすべてのノート/の理由を結合する必要があります。
Date patientID reason .....other columns....
__________________________________________________________
12/26/2016 2 age
12/26/2016 2 location
12/27/2016 2 missing info
12/27/2016 2 age
は
Date patientID reason .....other columns....
__________________________________________________________
12/26/2016 2 age, location
12/27/2016 2 missing info, age
なり
ここに私が創造し始めたのは、それが患者のためのすべての理由を日付に属するものだけでなく与えることです。さらに、残りの列をプルするためにクエリに追加する方法もわかりません。
私は良い強いクエリを作成することができますように도와ください。
SELECT distinct DATEADD(dd, DATEDIFF(dd, 0, dateAdded), 0),
otherNote = STUFF((SELECT ', ' + (CASE WHEN eligibilityReason= 7
THEN otherNote ELSE Reasons.reason end) as reason
FROM Eligibility left Join Reasons on Reasons.reasonID = eligibilityReason
WHERE patientID=2
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 2, '')
FROM Eligibility
GROUP BY DATEADD(dd, DATEDIFF(dd, 0, dateAdded), 0)
まだ日付でグループ化できません。エラーです。列 'Eligibility.patientID'は、集計関数またはGROUP BY句に含まれていないため、選択リストでは無効です。 列「Eligibility.dateAdded」は、集計関数またはGROUP BY句に含まれていないため、選択リストでは無効です。 – programmerInTraining
日付のみでグループ化し、異なる患者をまとめてグループ化する場合を除いて、グループ化リストにPatientIDを追加します。 –
ありがとう、しかし、私はまだ列 'Eligibility.dateAdded'が集計関数またはGROUP BY句に含まれていないため、選択リストで無効です。 – programmerInTraining