有两个表,表A和表B
A表中
sfzno(身份证号) yjny(应缴年月) 
XXXX                200801             
XXXX                200802
XXXX                200803
DDDD                200801B表中sfzno(身份证号)   sjny(实缴年月)   je(金额)
XXXXX             200801             100
XXXXX             200803              50
DDDDD             200801              120
DDDDD             200802              70
 
排列号变参成:
sfzno yjny     sjny          jexxxx  200801   200801        100
xxxx  200802   null          null
xxxx  200803   200803        50谢谢,应该怎查询排序呢?

解决方案 »

  1.   

    select a.sfzno,a.yjny,b.sjny,b.je
    from a left join b
    on a.sfzno = b.sfzno and a.yjny = b.sjny
      

  2.   

    SELECT A.*,B.sjny,B.JE 
    FROM A LEFT JOIN B ON A.sfzno = B.sfzno
      

  3.   

    select a.*,b.sjny,b.je
    from a left join b
    on a.sfzno = b.sfzno and a.yjny = b.sjny
      

  4.   

    create table A(sfzno varchar(18), yjny varchar(6))
    insert into a values('XXXX' , '200801') 
    insert into a values('XXXX' , '200802') 
    insert into a values('XXXX' , '200803') 
    insert into a values('DDDD' , '200801') 
    create table b(sfzno varchar(18), sjny varchar(6),je int)
    insert into b values('XXXX', '200801' , 100 )
    insert into b values('XXXX', '200803' , 50) 
    insert into b values('DDDD', '200801' , 120) 
    insert into b values('DDDD', '200802' , 70 )
    goselect a.sfzno,a.yjny,b.sjny,b.je
    from a left join b
    on a.sfzno = b.sfzno and a.yjny = b.sjny
    order by a.sfzno,a.yjnydrop table a , b
    /*
    sfzno              yjny   sjny   je          
    ------------------ ------ ------ ----------- 
    DDDD               200801 200801 120
    XXXX               200801 200801 100
    XXXX               200802 NULL   NULL
    XXXX               200803 200803 50(所影响的行数为 4 行)
    */