各位大虾:
 是着样子的 我有两个表 
表 1:inout(进出表)对应字段:cardnum(车卡号),sfcardnum(人卡号),inrq(进场 时间),outrq(出场时间)。
表2:gk(购卡表)对应字段为 cardnum(卡编号,分别和inout的车卡号和人卡号对应)
cp(车牌号)xm(驾驶员姓名)
现在我对inout 进行查询操作,假如车卡(cardnum)不为空 我需要显示车牌号码
假如人卡(sfcardnum)不为空 我需要显示驾驶员姓名
请问这个sql语句怎么样写啊

解决方案 »

  1.   

    select * from inout,gk where inout.cardnum=gk.cardnum or inout.sfcardnum=gk.cardnum 都显示出来不就得了
      

  2.   

    select * from inout a,gk b where (a.cardnum is not null) and (b.sfcardnum is not null)
      

  3.   

    sorry,上边的联接会造成资源浪费
      

  4.   

    把我们俩的where子句组合一下就ok了
      

  5.   

    首先谢谢各位
    但是我可能还有点地方不明白
    我一共要显示的字段是 cardnum ('车卡号'),sfcardnum (人卡号),(jsy)驾驶员姓名,
    (cp)车牌号 假如我在inout 中查找到的记录cardnum=‘’那么对应的车牌号也就不要显示
      

  6.   

    select A.*,B.cp,C.xm 
    from inout A
      left join gk B on A.cardnum = B.cardnum
      left join gk C on A.cardnum = C.cardnum祝你好运!
      

  7.   

    select A.*,B.cp,C.xm 
    from (inout A
      left join gk B on A.cardnum = B.cardnum)
      left join gk C on A.cardnum = C.cardnum祝你好运!
      

  8.   

    select A.cardnum,A.sfcardnum,B.cp,C.xm 
    from (inout A
      left join gk B on A.cardnum = B.cardnum)
      left join gk C on A.cardnum = C.cardnum祝你好运!
      

  9.   

    select cp=(select cp from gk,inout where gk.cardnum=inout.cardnum)||cardnum,
           rk=(select xm from gk,inout where gk.cardnum=inout.sfcardnum)||sfcardnum,
           inrq,a.outrq
    from inout思路是这样,你可以看下条件语句的具体写法.
      

  10.   

    select A.cardnum,A.sfcardnum,B.cp,C.xm 
    from (inout A
      left join gk B on A.cardnum = B.cardnum)
      left join gk C on A.sfcardnum = C.cardnum
    where A.cardnum <>''