有三张表:
1.入库表,table1:InID(入库ID),InNumber(入库数量),InTime(入库时间),stockId(库存ID)
2.出库表,table2:OutID(出库ID),OutNumber(出库数量),OutTime(出库时间),stockId(库存ID)
3.调拨表,table3:TraID(调拨ID),TraNumber(调拨数量),TraTime(调拨时间),stockId(库存ID)现在想查询,某段时间内,库存变动记录,即某段时间内,所有的入库、出库、调拨数据,怎么写SQl语句呢???

解决方案 »

  1.   

    declare @starttime datetime, @endtime datetime
    select @starttime='2013-08-01', @endtime='2013-08-31'select a.stockId,sum(InNumber) as InNumber,sum(OutNumber) as OutNumber,sum(TraNumber) as TraNumber
    from 入库表 a
    left join (select * from 出库表 where convert(varchar(10),OutTime,120) between @starttime and @endtime) b on a.stockId=b.stockId
    left join (select * from 调拨表 where convert(varchar(10),TraTime,120) between @starttime and @endtime) c on a.stockId=c.stockId
    where convert(varchar(10),InTime,120) between @starttime and @endtime
    group by a.stockId
      

  2.   

    没有给出完整的表结构,什么知道你的明细是什么?
    应该是每一个物料的明细,那么就按物料编码去分组统计...........
    ....
    group by 物料编码