0

次のような顧客のリストを返すSQLステートメントを作成したいと思います。

SELECT Id, FirstName, LastName FROM Customer

その部分は明らかに簡単です。

次に、HasOrdersなどの可変列を作成します。これを、顧客が注文テーブルに1つ以上の注文を持っているかどうかに基づいて動的に生成されるブール列にします。この質問の目的のために、注文がオープンであるかどうかは関係なく、その顧客IDに注文が存在するかどうかだけであると想定します。

SELECTステートメントで、注文のある顧客だけでなく、すべての顧客を返すようにします。顧客が注文を持っているかどうかに応じて、さらにロジックを実行する必要があります。

これがIF..ELSE、CASE、またはネストされたSELECTで実現できるかどうかわかりませんか?

4

1 に答える 1

8
SELECT  a.ID, a.FirstName, a.Lastname,
        CASE WHEN COUNT(b.CustID) > 0 THEN 'YES' ELSE 'NO' END AS HasOrders
FROM    Customer a
        LEFT JOIN Orders b
            ON a.ID = b.CustID        -- <<== the linking column on both tables
GROUP   BY a.ID, a.FirstName, a.Lastname
于 2013-02-19T03:28:30.090 に答える