私のレポートで要件を実行することに固執しています。レコードを1行に連結する
Name Item_segment Due_Date Order_type Total_Qty Supplier name
A xx 11/18/2017 ABC 10 ababbcc
A xx 11/18/2017 ABC 10 deffgg
B xx 11/26/2017 ABC 40 xxyyzzz
C xx 11/18/2017 ABC 10 deffgg
C xx 11/30/2017 ABC 10 deffgg
C xx 11/30/2017 DEF 10 deffgg
C xx 11/30/2017 PQR 10 deffgg
結果が設定
Name Item_segment Due_Date Order_type Total_Qty Supplier name
A xx 11/18/2017 ABC 10 ababbcc,deffgg
B xx 11/26/2017 ABC 40 xxyyzzz
C xx 11/18/2017 ABC 10 deffgg
C xx 11/30/2017 ABC 10 deffgg
C xx 11/30/2017 DEF 10 -----
C xx 11/30/2017 PQR 10 -----
1.サプライヤ名は「ABC」とオーダー型を有するオーダーで報告しなければならないと他の人のためのブランクでなければなりません。
2. name、item_segment、due_date、order-typeなどの同じ組み合わせの2つのレコードが異なるサプライヤ名を持つ場合、それらの間に '、'を付けて1つの行に結合する必要があります。
あなたがcase
表現
SELECT Name, Item_segment, Due_Date, Order_type, Total_Qty,
[Supplier name] = CASE(Order_type) WHEN 'ABC'
THEN STUFF((
SELECT DISTINCT ','+[Supplier name] FROM <table>
WHERE Name = t.Name FOR XML PATH('')
), 1, 1, '')
ELSE ' ' END
FROM <table> t
GROUP BY Name, Item_segment, Due_Date, Order_type, Total_Qty;
結果の助けを借りてstuff()
機能を使用することができます
おかげでたくさん!それは私のために働い –