我有两个表,基本结构如下:   表1:                          | 表2:
                                  |
     部门ID       部门名称        |     执行部门ID    完成数     执行时间
                                  |
     00001         大队           |      00003          1       2004-12-31
     00002         中队           |
     00003         小队           |
我要的结果是:(在 2004-12-01 至 2004-12-31 这一个月内的结果集)       部门名称       完成数         大队           0
         中队           0
         小队           1select A.部门名称,B.完成数 from 表1 A, 表2 B where A.部门ID = B.执行部门ID 
           and B.执行时间 >'2004-12-01 ' and B.执行时间 <'2004-12-31 ';

解决方案 »

  1.   

    select A.部门名称 部门名称,decode(B.完成数,1,0,1,0,0) 完成数 from 表1 A, 表2 B where A.部门ID = B.执行部门ID 
               and B.执行时间 >'2004-12-01 ' and B.执行时间 <'2004-12-31 ';
      

  2.   

    select a.部门名称,sum(nvl(b.完成数,0)) 完成数
    from a,b
    where a.id=b.id(+)
    group by a.部门名称
      

  3.   

    yxxx(小孬)还有时间限制呢?,这样肯定是可以的,但是加上时间就不行了!就得到我的哪个结果拉! jsnicle(js_nicle) ( ) decode(B.完成数,1,0,1,0,0)  这个函数有没有相关资料给我看看啊?我照你的方法用,可是报错:  无效数字
      

  4.   

    漏了时间条件select a.部门名称,sum(nvl(c.完成数,0)) 完成数
    from a,(select * 
              from b 
             where b.执行时间>to_date('2004-11-30','yyyy-mm-dd') 
               and b.执行时间<to_date('2005-01-01','yyyy-mm-dd')) c
    where a.id=c.id(+)
    group by a.部门名称
      

  5.   

    yxxx(小孬)我试过了,这样不行!
    唉!
    我再试一次吧!
      

  6.   

    result:
    big 0
    mid 0
    small 6难道不是这样的么?
      

  7.   

    yxxx(小孬)我知道我犯了什么错误了!谢谢!
      

  8.   

    SQL> select * from t_1;        ID MC
    ---------- --------
             1 大队
             2 中队
             3 小队SQL> select * from t_2;        ID        WCS SJ
    ---------- ---------- ----------
             3          1 31-12月-04SQL>   select t1.mc 执行部门ID,sum(nvl(tt2.wcs,0)) 完成数
      2    from t_1 t1,(select t1.mc,t2.id,t2.wcs,t2.sj from t_1 t1,t_2 t2 where t1.id=t2.id(+) and (t2.sj between to_date('2004-12-01','yyyy-mm-dd') and to_date('2004-12-31','yyyy-mm-dd'))) tt2
      3    where t1.id=tt2.id(+)
      4   group by t1.mc;执行部门              完成数
    -------- -------------------
    大队                       0
    小队                       1
    中队                       0SQL>
      

  9.   

    这是初学者经常遇到的问题,只要您认真的对待问题,仔细分析问题,答案会迎刃而解的!
    多多看下SQL的语句,不要动不动就用"比较难的SQL语句"这类题目,会吓坏别人的!