qy_qyjbqk 企业信息表    表内字段  qyid(企业id,主键),   qymc   (企业名称) 
qy_qybb         企业报表  表内字段 qyid   (企业表内码), bbid (报表id,主键)   ,nf(报表年份),jd(报表季度),   estate(00企业端,01己上报) 现在想根据 企业名称为条件或企业名称+年份为条件 的方式搜索出 例如2006年季报(季度分别为第1季度第2季度第3季度第4季度) 未上报企业的信息(重点是未上报的可能是空信息),可以用年份+季度体现出来. 

解决方案 »

  1.   

    estate=00为未上报,还有另一种情况(难题)就是比如2006年第一季度根本没信息,也要体现出来.有一位朋友回答过我,代码如下,但我试了后,明明qyid为967,年度为2006年第二季度是有信息记录的,搜索出来也没排除掉.select t.* from
    (
      select qyid , nf , jd from qy_qyjbqk , 
      (
        select 2006 as nf , '1季度' as jd union 
        select 2006 , '2季度' union 
        select 2006 , '3季度' union 
        select 2006 , '4季度' 
      ) b
    ) t where checksum(qyid , nf , jd) not in (select checksum(qyid , nf , jd) from qy_qybb) and qyid='967'
      

  2.   

    qy_qyjbqk 企业信息表        表内字段  qyid(企业id,主键),       qymc       (企业名称)   
    qy_qybb                   企业报表  表内字段 qyid       (企业表内码), bbid (报表id,主键)       ,nf(报表年份),jd(报表季度),       estate(00企业端,01己上报)   现在想根据 企业名称为条件或企业名称+年份为条件 的方式搜索出 例如2006年季报(季度分别为第1季度第2季度第3季度第4季度) 未上报企业的信息(重点是未上报的可能是空信息),可以用年份+季度体现出来.、、、-----------------------------------
    select * 
    from qy_qyjbqk a
    where not exists(select 1 from qy_qybb where a.qyid = qyid and estate ='00' and nf = '2006')
      

  3.   

    select * from qy_qyjbqk a where not exists(select 1 from qy_qybb where qyid=a.qyid and nf='2006' and estate='01') and qyid='967'