以下の select ステートメントを確認してください。
SELECT
fc.flavorid,
fc.flavorname,
CASE
WHEN sa.flavorid IS NULL THEN 'No'
ELSE 'Yes' END ) IsEaten
CASE
WHEN t.tempid IS NULL THEN 'No'
ELSE 'Yes' END ) IsWarm
FROM [poptart] p
LEFT JOIN [diet] d ON d.Active = 1
LEFT JOIN [toaster] ts ON p.poptartid = ts.poptartid AND d.dietname = ts.dietname
LEFT JOIN [flavor] fl ON fl.poptartid = ts.poptartid
LEFT JOIN [flavorcolor] fc ON fc.flavorid = fl.flavorid
LEFT OUTER JOIN [stomach] sa ON sa.flavorid = fc.flavorid
LEFT JOIN [poptart] p2 ON ts.poptartid = p2.poptartid
LEFT JOIN [temp] t ON t.tempid = p2.tempid AND t.Active = 1
GROUP BY fc.flavorid,fc.flavorname,sa.flavorid,t.tempid
ORDER By fc.flavorname
以下に示すように、これは「berry」の「IsWarm」値ごとに 1 つを返します。このリストで個別のフレーバー名のみを返したいのですが、「IsWarm」フィールドが問題になります。これは、Yes または No になる可能性があり、Yes と No ではなく、Yes が利用可能な場合にのみ Yes を表示したいので、そうではありません。 「berry」のように、重複するフレーバー名をプルします。
flavorid | flavorname | IsEaten | IsWarm
123 | berry | No | Yes
123 | berry | No | No
234 | fudge | Yes | No
235 | honey | No | No
このステートメントがこれだけを返すようにするにはどうすればよいですか?
flavorid | flavorname | IsEaten | IsWarm
123 | berry | No | Yes
234 | fudge | Yes | No
235 | honey | No | No
助言がありますか?