次の状況に適した SQL を見つけようとしています。
2 つのテーブルがあるとします。
TABLE A
ID int,
TEXT varchar(200)
TABLE B
ID int,
A_NO int,
B_NO int
両方のテーブルの「ID」という名前のフィールドは、リンク テーブルに結合できます。
次の SQL:
SELECT
A.ID,
B.A_NO,
B.B_NO
FROM
A
LEFT JOIN
B
ON A.ID = B.ID
ORDER BY A.ID, B.A_NO, B.B_NO
次の結果が得られます。
さて、問題です。求められているのは、列 B_NO に、列 A_NO の MIN 値に対して値 = 1 を設定し、同じ A_NO 値を持つ他のすべての行に対して値 = 0 を設定することです。以下の結果が期待されます。
この例では、各 B_NO 値に対して 2 つの行を見つけることができますが、2 つ以上の行がある可能性があることに注意してください。
CASE を使用してこれらの結果を再現しようとしましたが、成功しませんでした。事前に助けてくれてありがとう、ブズーキ。