一表的部分字段如下:no(识别号),sssq_q(所属期起),sssq_z(所属期止),其中no为主键,现表A中已有no为12345,sssq_q为2007.07.01,sssq_z为2007.07.31的记录,要求查询出该识别号本年所缺记录,即前六个月的记录,共六条,不知如何操作?小弟初学sql,请教各位了!!!谢谢了先。

解决方案 »

  1.   

    好的,比如现在查询的结果为:
    select *  from table a;
    ------------------------------
     no      sssq_q       sssq_z
    ------------------------------
    12345  2007-07-01   2007-07-31
    ------------------------------
    现在想通过查询得出本年所缺各月的记录,即1-6月份的六条数据,查询结果应为:
    12345  2007-01-01   2007-01-31
    12345  2007-02-01   2007-02-28
    12345  2007-03-01   2007-03-31
    12345  2007-04-01   2007-04-30
    12345  2007-05-01   2007-05-31
    12345  2007-06-01   2007-06-30
      

  2.   

    不知道和LZ的需求是否相符,试试看~~~
    select tt.sno,
           add_months(to_date(to_char(tt.sssq_q,'yyyy')||'0101','yyyy-mm-dd'),rn-1) as Month_Head,
           last_day(add_months(to_date(to_char(tt.sssq_q,'yyyy')||'0101','yyyy-mm-dd'),rn-1)) as Month_End
      from tablename tt,
           (
            select rownum rn
              from tablename tt,
                   all_objects
             where rownum <= to_char(sssq_q,'mm')-1
           )yy;
    ==========result=========================       SNO MONTH_HEAD  MONTH_END
    ---------- ----------- -----------
         12345 1/1/2007    1/31/2007
         12345 2/1/2007    2/28/2007
         12345 3/1/2007    3/31/2007
         12345 4/1/2007    4/30/2007
         12345 5/1/2007    5/31/2007
         12345 6/1/2007    6/30/20076 rows selected
      

  3.   

    不明白? 麻烦说清楚些.
    既然No是key,怎么可能会有针对key的重复记录,除非是别的表格上和这个no有关联.