1

私は数時間かけて独学し、ダミーのテスト データを使用して、すべての顧客と各顧客からの注文を一覧表示する方法を学びました。CustomerID、CustomerName、OrderTypeName、およびカウント "OrderCount" を返したい

私はオンラインで見つけたいくつかの異なる方法とテクニックを試しましたが、私が理解できない明らかな単純な解決策に関連する同様の/異なる問題に遭遇し続けています.

これが私の現在のクエリです。

SELECT 
    c.CustomerID, c.CustomerName, t.OrderTypeName
FROM 
    tblCustomer c, tblOrder o, tblOrderType t
INNER JOIN
    (SELECT 
         o.CustomerID, COUNT(o.CustomerID) AS OrderCount
     FROM
         tblOrder o, tblCustomer c
     WHERE 
         o.CustomerID = c.CustomerID)
ORDER BY CustomerName;

これは現在、キーワード「ORDER」の近くで構文が正しくないというエラーを出しています。

4

3 に答える 3

0

を実行するときは、JOINこれら 2 つのテーブルを結合するフィールドを指定する必要があります。

例えば:

select t1.a,t2.b from table1 t1 join table2 t2 on t1.id= t2.id

だから、あなたが言ったガイドを正しく読んでいないと思います。

質問を解決するには、使用する構文のタイプを選択する必要があります。コンマ区切り (非常に古い) またはjoin condition(推奨) を提供するもの。

于 2013-05-15T13:13:37.683 に答える
0

ordertype テーブルが orders テーブルにどのように接続されているかを仮定します。

SELECT 
c.CustomerID
,c.CustomerName
,t.OrderTypeName
,COUNT(o.customer_id) as num_orders
FROM tblCustomer c
INNER JOIN tblOrder o on o.customer_id = c.customer_id
INNER JOIN tblOrderType t ON t.order_id = o.order_id
GROUP BY
c.CustomerID
,c.CustomerName
,t.OrderTypeName
ORDER BY 
c.customer_id
于 2013-05-15T13:09:55.727 に答える