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这里使用。
  • 您不能在outer join此处使用 an。使用inner join. 原因是你只想要SalesOrderHeader也有对应的 sCreditCard
  • 你忘记了where条款
  • 连接需要一个on条件

    select count(*) from CreditCard cc inner join SalesOrderHeader so on 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 回答