看你的描述应该是要用外连接 把INNER JOIN 改成LEFT OUTER JOIN或者RIGHT OUTER JOIN试试看

解决方案 »

  1.   

    不成,INNER JOIN 是连接两个 查询数据和,左右 都一样。说白了,就是把时间 段内 查询不到的数据 也显示出来但是 总数 和 总价 都为 0 了,因为这个时间段 没入库也没出库 ,所以数量也就是0了。
      

  2.   

    在SQL里面可以先把organ表的数据和日期区间外连接 不过好像有点麻烦 不如在程序里面写了
      

  3.   

    WHERE 
    CONVERT(CHAR(10),ISNULL(OutDate,'2009-07-22'),121)>='2009-07-22' and CONVERT(CHAR(10),ISNULL(OutDate,'2009-07-22'),121) <='2009-07-22' 
    GROUP BY a.OrganID,a.OrganName) h  ON g.OrganID=h.OrganID 这个where子句后加上
    union all 
    select a.OrganID,a.OrganName, 0, 0.0, 0, 0, 0.0, 0.0 from a 
    where CONVERT(CHAR(10),ISNULL(OutDate,'2009-07-22'),121)<'2009-07-22' or CONVERT(CHAR(10),ISNULL(OutDate,'2009-07-22'),121) >'2009-07-22' 
      

  4.   

    漏了半句,再接上GROUP BY a.OrganID,a.OrganName
      

  5.   

    不管有没有都要显示的话,用full join得了
      

  6.   

    SELECT A.品名,B.入库,B.出库FROM TB ALEFT JOIN (SELECT * FROM TB WHERE 入库=0 AND   出库=0) AS BON A.品名=B.品名
      

  7.   

    full join 不行,
    因为是 有条件的。没条件的可以