我现在有一个表vs --单证使用明细表(visacode-单证类型代码、VisaSerialNo-单证流水号、flag-标志位) 与vsdossier--归档登记表(VisaCode-单证类型代码、StartSerialNo-起始流水号、EndSerialNo-终止流水号)如何查询vsdossier--归档登记表中的StartSerialNo-起始流水号、EndSerialNo-终止流水号 这个区间内的数据不在vs --单证使用明细表中的VisaSerialNo-单证流水号  字段内存在,且满足flag-标志位 not in('0','1');

解决方案 »

  1.   


     select * from vsdossier where not exists (select 1 from vs where VisaSerialNo > StartSerialNo and VisaSerialNo < EndSerialNo
     and flag not in ('0','1'))
      

  2.   

    贴记录及要求结果出来看看
     select * from vsdossier a 
    where not exists(select 1 from vs where a.VisaSerialNo > StartSerialNo and a.VisaSerialNo < EndSerialNo
      and a.flag not in ('0','1'))
      

  3.   

    查询的信息不对的呢!您给我的sql去执行,我拿其中的一条数据去查询vsdossier表,里面有数据的想要的效果是,vs表中的流水号visaserialno字段,不存在在vsdossier表内的startserialno与endserialno字段中
      

  4.   

    贴建表及插入记录的SQL,及要求结果出来看看
      

  5.   

    现在需要用sql写出来,大牛,能帮帮忙吗?     
      

  6.   

    那你需要一张序列表, create table sno(sn int primary key);
    表中 sn 从1,2.3...1000 (这个1000改成你查询时StartSerialNo-起始流水号、EndSerialNo-终止流水号的最大跨度然后做连接查询。
      

  7.   

    u013952431
    huangyunyun__
    等级:
    结帖率:0%