使用AdWorks示例在SQL中加入

时间:2015-07-18 19:07:14

标签: sql-server regex adventureworks

我正在练习使用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。眼睛是红色的...谢谢

1 个答案:

答案 0 :(得分:0)

有几个问题:

  • 你不能sum日期。你必须在这里使用count
  • 您不得在此处使用outer join。使用inner join。原因是您只希望SalesOrderHeader也具有相应的CreditCard
  • 您忘记了where条款
  • 联接需要on条件

    从中选择计数(*) CreditCard cc内部加入SalesOrderHeader,所以cc.Id = so.CreditCardId 其中cc.CardType ='Visa'和so.OrderDate介于'2002-10-01'和'2002-10-31'之间

我猜到了外键字段cc.Idso.CreditCardId的名称,因为您没有注明这条信息。