一年的前 10 周

First 10 weeks of a year

针对 Sales.OrdersSales.OrderDetails 表编写 SELECT 语句 并检索 productid 列的所有不同值。

过滤结果以仅包含 2007 年 前 10 周的订单。

我在过滤部分遇到了问题。

我尝试过的:

select * from Sales.Orders o 
join Sales.OrderDetails d 
on o.orderid=d.orderid 
group by o.productid 
having orderdate between '2017-01-01' and '2017-03-12';

试试这个:

DATEADD 函数将为您提供 10 week(70 days) 的值。

select * 
from Sales.Orders o 
join Sales.OrderDetails d on o.orderid=d.orderid 
WHERE orderdate >= '2017-01-01' and orderdate <= DATEADD(DAY,70,'2017-01-01')

您需要 where 子句来过滤日期。那么您只想 select 产品 ID:

select distint od.productid
from Sales.Orders o join
     Sales.OrderDetails od 
     on o.orderid = d.orderid 
where o.orderdate >= '2017-01-01' and
      o.orderdate < dateadd(week, 11, '2017-01-01');