0

私は AdventureWorks を使って練習しています。質問は次のとおりです: 2002 年 10 月に Vista クレジット カードを使用したセールス オーダー (ヘッダー) の数

SELECT * FROM Sales.SalesOrderHeader        --a
SELECT * FROM Sales.CreditCard          --b

SELECT      
    SUM(a.OrderDate), b.CardType        
FROM        
    [Sales].[CreditCard] b
LEFT OUTER JOIN  
    [Sales].[SalesOrderHeader] a 

このクエリの書き方がわかりません。私は SQL が初めてで、これが初めての JOIN です。目が赤い…ありがとう

4

1 に答える 1

0

いくつかの問題があります。

  • sumデートはできません。ここを使用する必要がcountあります。
  • ここでa を使用してはなりませんouter join。を使用しinner joinます。その理由はSalesOrderHeader、対応する も持つのみが必要だからです。CreditCard
  • where条文を忘れた
  • 結合にはon条件が必要です

    select count(*) from CreditCard cc 内部結合 SalesOrderHeader など cc.Id = so.CreditCardId where cc.CardType = 'Visa' and so.OrderDate between '2002-10-01' and '2002-10-31'

cc.Id外部キー フィールドの名前を推測しましたso.CreditCardId。この情報を示していないためです。

于 2015-07-18T19:28:14.097 に答える