谢谢大家来帮忙!
,我有两个表
    一个表数据是这样的
    a.单号,a.单据号,a.报销人,a.审核人.....
   一条数据 F_0473_030901,F_0473_030901_50,0473,0006,......
    另一个表数据是这样的
    b.单号,b.单据号,b.报销人,b.分摊确认.....
   第一条数据 F_0473_030901,F_0473_030901_50,0473,1,..........
   第二条数据 F_0473_030901,F_0473_030901_50,0473,99,..........
我这两个表单号和单据号都是相同吗,条件是第二个表只要有一条数据"分摊确认"<>1时,我的第一个表数据
就看不到,要是分摊确认都等于1时第一个表就能看到。
谢谢大家帮我,我这个真的搞不定。
分不够再给。

解决方案 »

  1.   

    看看你的字段类型是不是相同?还有一点就是你取值的时候也要注意string 和 int
      

  2.   

    select a.单号,a.单据号,a.报销人,a.审核人..... from 表a,表b
    where (select isNull(count(*),0) from 表b.单号=表a.单号 and 表b where b.分摊确认<>1)>=0我还没试,不知道行不行
      

  3.   

    修正
    select a.单号,a.单据号,a.报销人,a.审核人..... from 表a,表b
    where (select isNull(count(*),0) from 表b.单号=表a.单号 and 表b where b.分摊确认<>1)=0
      

  4.   

    select a.单号,a.单据号,a.报销人,a.审核人..... from 表a left join 表b on 表b.单号=表a.单号 where  b.分摊确认=1
      

  5.   

    对不起大家,我写的有点复杂了。基本上是这样的有一个表 table1 (a1,a2,a3) 三个字段当a3 的字段数据都为'1'时 table1的数据就全部显示出来不然就一条也不显示
      

  6.   

    这个sql语句比较典型,我曾经考过别人求职的,但没有回答正确的gzing
      

  7.   

    select e.* from 
    (select c.* from (select 单号,单据号,max(分摊确认) 分摊确认 from table2 group by 单号,单据号) c where c.分摊确认='1') d left outer join 
    (select a.单号,a.单据号,a.报销人,a.审核人,b.报销人,b.审核人 from table1 a left outer join table2 b on a.单号=b.单号 and a.单据号=b.单据号) e on 
    d.单号=e.单号 and d.单据号=e.单据号 
      

  8.   

    if (select Count(*) from table1 where a3<>1 )=0
      select * from table1
    else
      select '' a1,'' a2,'' a3