Orders、OrderDetails、ProductType の 3 つのテーブルがあり、Orders テーブルには Customer の列が含まれているとします。私がする必要があるのは、顧客のリストと各顧客が行った注文の数を表示するクエリを作成するだけでなく、特定のタイプの製品かどうかに基づくブール値である別の列で表示およびグループ化することです。 、電話 - の順番です。
たとえば、次のようになります。
Customer | NumOrders | IncludesPhone
---------------------------------
Jameson | 3 | Yes
Smith | 5 | Yes
Weber | 1 | Yes
Adams | 2 | | No
Jameson | 1 | No
Smith | 7 | No
Weber | 2 | No
ただし、このクエリを作成しようとすると、Customer と includesPhone の値が同じで、NumOrders の値がそれぞれ異なる複数の行が取得されます。なぜこうなった?私のクエリは以下の通りです:
SELECT Customer, COUNT(Customer) AS NumOrders, CASE WHEN (ProductType.Type = 'Phone') THEN 'Yes' ELSE 'No' END AS IncludesPhone
FROM Orders INNER JOIN OrderDetails INNER JOIN ProductType
GROUP BY Customer, Type
Order By IncludesPhone, Customer