有三个表:A,B,C.A表的字段为:供应商代号,供应商名称,B表的字段为:单据号,供应商代号,入库数量。C表的字段为:
单据号,单据日期。现在需统计所有供应商9月份的总入库数量,包括入库数量为0的供应商。
表现形式即:
  供应商代号 供应商名称 总数量
     A          微软      100
     B          用友      200
     C          SAP        0
     D          神码       0

解决方案 »

  1.   

    select A.供应商代号,A.供应商名称,总数量=sum(入库数量) from A join B on A.供应商代号=B.供应商代号
    join C on B.单据号=C.单据号 where convert(varchar(7),单据日期,120)='2009-09'
    group by A.供应商代号,A.供应商名称
      

  2.   


      select 供应商代号,供应商名称 sum(入库数量) from  A inner join B
       on  A.供应商代号  =B.供应商代号
        inner join C
       on  B.单据号  =C.单据号 
    where  datepart(m,单据日期) = 9 group by 供应商代号,供应商名称 having sum(入库数量) = 0
      

  3.   

    select A.供应商代号,A. 供应商名称 ,sum(isnull(B.入库数量,0)) as'总数量'
    from A left join B on A. 供应商代号=B.供应商代号 inner join C on B.单据号=C.单据号
    where year (C.单据日期)='2009' and month(C.单据日期)='9'
     
      

  4.   

    select A.供应商代号,A. 供应商名称 ,sum(isnull(B.入库数量,0)) as'总数量'
    from A left join B on A. 供应商代号=B.供应商代号 inner join C on B.单据号=C.单据号
    where year (C.单据日期)='2009' and month(C.单据日期)='9' group by A.供应商代号,A. 供应商名称
      

  5.   

    select 
      a.供应商代号,a.供应商名称,isnull(sum(b.入库数量),0) as 总数量
    from
      a 
    join b on
      a.供应商代号=b.供应商代号
    join c on
      b.单据号=c.单据号
    group by
      a.供应商代号,a.供应商名称
    where 
      detapart(mm,单据日期)=7
      

  6.   

    select 
      a.供应商代号,a.供应商名称,isnull(sum(b.入库数量),0) as 总数量
    from
      a 
    join b on
      a.供应商代号=b.供应商代号
    join c on
      b.单据号=c.单据号
    where 
      detapart(mm,单据日期)=7
    group by
      a.供应商代号,a.供应商名称
      

  7.   


    select B.供应商代号, A.供应商名称,SUM(C.入库数量) as '总数量' 
    from 
    C left join B
    ON C.单据号 = B.单据号
    AND datediff(month, c.单据日期,'2009-09-01 12:10:09.3312722') = 0
    Left join A
    B.供应商代号 = A.供应商代号
    group by B.供应商代号, A.供应商名称
      

  8.   


    select A.供应商代号,A.供应商名称  sum(B.入库数量) as 总数量 from  A inner join B
    on  A.供应商代号  =B.供应商代号
    inner join C
    on  B.单据号  =C.单据号 
    where  datepart(m,C.单据日期) = 9  
    group by A.供应商代号,A.供应商名称 having sum(B.入库数量) = 0
      

  9.   


    select A.供应商代号,A.供应商名称  sum(B.入库数量) as 总数量 
    from  A left join B
    on  A.供应商代号  =B.供应商代号
    left join C
    on  B.单据号  =C.单据号 
    where  datepart(m,C.单据日期) = 9  
    group by A.供应商代号,A.供应商名称
      

  10.   


    [color=#FF0000]应该不是用JOIN,它相当于 INNER JOIN [/color]