0

Chinook Test Databaseを使用して、このSQLステートメントを作成し、2人の特定の顧客によって注文されたすべてのトラックを表示しました。

SELECT inv.BillingCity,cus.LastName,tra.Name
        FROM invoice AS inv
        JOIN customer AS cus ON inv.CustomerId=cus.CustomerId
        JOIN invoiceline inl ON inv.InvoiceId=inl.InvoiceId
        JOIN track tra ON tra.TrackId=inl.TrackId
        WHERE cus.LastName IN ('Schneider','Schröder')
        ORDER BY inv.BillingCity,cus.LastName,tra.Name

1人の顧客から2回注文されたトラックがあることがわかります。

ここに画像の説明を入力してください

このようなdoubleを見つけるために、SQLステートメントをどのように記述すればよいでしょうか。つまり、「1人の顧客によって複数回注文されたすべてのトラックを返す」ということです。

4

1 に答える 1

2

これを試して:

SELECT cus.CustomerId,tra.Name,COUNT(cus.CustomerId) AS tot
       FROM invoice AS inv
       JOIN customer AS cus ON inv.CustomerId=cus.CustomerId
       JOIN invoiceline inl ON inv.InvoiceId=inl.InvoiceId
       JOIN track tra ON tra.TrackId=inl.TrackId
       GROUP BY cus.CustomerId,tra.Name
       HAVING tot > 1
于 2012-07-07T05:24:39.293 に答える