select product.productid,Category.Cat_CategoryId,product.name,isnull(num1,0) as num from product 
left join(
select orderproduct.productid as productid,count(orderproduct.productid)as num1 from orderproduct 
join orders on orders.orderid=orderproduct.orderid 
where orderStatusId = 3 and orderdate>='2008-1-1' and orderdate <'2008-2-1' 
group by orderproduct.productid
) aa on product.productid=aa.productid
left join Category  on Category.CategoryId = product.CategoryId 
order by product.productid asc
我现在能查出'2008-1-1' 到'2008-2-1' 的没种产品的销售量,但是现在想要的结果是我想查出每一天每一种产品的销售请问一下我改怎么修改啊

解决方案 »

  1.   

    select aa.[day],product.productid,Category.Cat_CategoryId,product.name,isnull(num1,0) as num from product 
    left join(
    select convert(varchar(10),orderproduct.orderdate,120) as [day]
    orderproduct.productid as productid,count(orderproduct.productid)as num1 from orderproduct 
    join orders on orders.orderid=orderproduct.orderid 
    where orderStatusId = 3  
    group by orderproduct.productid,convert(varchar(10),orderproduct.orderdate,120)
    ) aa on product.productid=aa.productid
    left join Category on Category.CategoryId = product.CategoryId 
    order by product.productid asc 
     
      

  2.   

    构造一个虚拟表,然后左连接.
    大致如下:select t1.* , isnull(tb.销售量,0) 销售量 from
    (
    select m.dt , n.产品 from
    (
    select '2008-01-01' dt union all
    select '2008-01-02' dt union all
    ...
    select '2008-02-01' dt union all
    ) m , (select distinct 产品 from tb) n
    ) t1 left join tb t2 on t1.dt = t2.dt and t1.产品 = t2.产品
      

  3.   

    select
     product.productid,Category.Cat_CategoryId,product.name,aa.orderdate,isnull(num1,0) as num from product 
    left join
    (
     select
       orderproduct.productid as productid,count(orderproduct.productid)as num1,convert(varchar(10),orderdate,120) as orderdate
     from
       orderproduct 
     join orders on
       orders.orderid=orderproduct.orderid 
     where
       orderStatusId = 3 and orderdate>='2008-1-1' and orderdate <'2008-2-1' 
    group by
      orderproduct.productid,convert(varchar(10),orderdate,120)
    ) aa 
    on
     product.productid=aa.productid
    left join
     Category on Category.CategoryId = product.CategoryId 
    order by
     product.productid asc