本人有一张表Records,该表是由几张表联合查询出来的字段拼接起来的,现在表里有cWhName(仓库名称) ,cInvCode(存货编码) ,cInvName(存货名称),iQuantity(数量),dDate(出库日期),cBusType(入库类型),我现在要根据输入的 “存货编码” 和“出库日期” 来查询该存货 各个仓库 的上月出仓数量和累计出仓数量。

解决方案 »

  1.   

    select 
    sum( case when convert(char(7),dateadd( month,-1,'出库日期' ),120) = convert(char(7),dDate,120) then iquantity else 0 end ),
    sum( iquantity)
    from Records where dDate < '出库日期' and cInvCode = '存货编码'你自己再根据需求调整一下。
      

  2.   

    --上月出仓数量
    select cWhName,SUM(iQuantity) from Records
    where cInvCode='条件1存货编码' 
    and dDate>=convert(varchar(7),DATEADD(MONTH,-1,'条件2出库日期'),120)+'-01'
    and dDate<dateadd(month,1,convert(varchar(7),DATEADD(MONTH,-1,'条件2出库日期'),120)+'-01')
    group by cWhName
    --累计出仓数量
    select cWhName,SUM(iQuantity) from Records
    where cInvCode='条件1存货编码' 
    group by cWhName
    如果cBusType(入库类型)“入库”、“出库”的区别,就在where后面加个即可。