就对三个表进行查询:
1.业务员表 有字段 业务员编号(slpcode)、业务员名(slpname)
2.交货表   有字段 业务员编号(slpcode)、物料名称(dscription)、交货日期(docdate)、数量(quantity)
3.退货表   有字段  业务员编号(slpcode)、物料名称(dscription)、交货日期(docdate)、数量(quantity)现在要输出的结果如下 业务员名  日期         日销量 月销量
张峰      2009-01-01  3      30
。。      。。         。。    。。
关键现在有个问题没解决,就是拿交货表的数量减去退货表的数量,当这天没有退货的数据时,应该让他减去0
可是我用了isnull不对,因为对应的退货表没有当天的这条空数据,退货表就是哪天有退货就记录哪天,应该当
退货表的编号,物料名,退货日期  与 交货表的 编号,物料名,交货日期 相同才进行相减。否则就让他减0或原样输出。不知道怎么用代码实现,好心人告诉下~~~

解决方案 »

  1.   

    交货表与退货表合并聚合,用业务员表连接最好限定业务员编号(3张表都限定)select  ... sum(quantity) as quantity(确定退货与交货是正负数)
    into #quanlity
    from
    (
    select .... from 交货表 where 业务员编号=? and docdate between ? and ?
    union all
    select .... from 退货表 where 业务员编号=? and docdate between ? and ?
    )
    group by slpcode,docdate select s.slpcode,s.sqlname ,q.docdate ,q.quantity,(select sum(quantity) from q) as monthQuantity
    from 业务员表 s
    inner jion #quanlity q on
    q.slpcode=s.slpcode你不规定日子么,那么就得想如何判断一个月的天数