现有两个表(A和B),字段相同,资料有一部分不同.我想合并取两个表中的资料(以PS,DT为条件)
A表资料:
  ps  dt  rk  sl  bz
  11  aa  kk  20  ss
  22  bb  df  30  hf
  33  cc  1s  60  s23
B表资料:
  ps  dt  rk  sl  bz
  11  aa  kk  66  ss
  22  bb  df  33  hf
  44  dd  fd  90  hj
我想要的结果:
  ps  dt  rk  sl  bz
  11  aa  kk      
  22  bb  df      
  33  cc  1s      s23
  44  dd  fd      hj
只要ps,dt相同的就显示一条,不同的都显示,不知怎么实现?
用UNION进行合并时,资料有重复.请教各位高手帮忙.

解决方案 »

  1.   

    1.
    select distinct ps, dt
    from
    (select * from a
    union 
    select * from b) x2.后面的两个字段sl, bz取值有什么要求?若不同,是取哪个值呢?
      

  2.   

    2.后面的两个字段sl, bz取值有什么要求?若不同,是取哪个值呢?
     
    后面的两个字段sl, bz不用取值。
      

  3.   

    select distinct ps, dt,'' as sl, '' as bz
    from
    (select * from a
    union 
    select * from b) x
      

  4.   

    我用的是Access數據庫。上面的代碼好象還是通不過。
      

  5.   

    select ps, dt, rk, sl, bz from A Where ps not in (select ps from B)
    select '''', ps, dt, rk, sl, bz from A Where ps not in (select ps from B)
    union select '''',Sum(ps),Sum(dt),Sum(rk),Sum(sl),Sum(bz) from A Where ps not in (select ps from B)
      

  6.   

    晕,好像思路有问题吧。
    数据本身是两条,你非放到一条里怎么可能?
    除非数据是有什么关系
    比如把ps和dt相同的记录中其它字段值相加或者什么关系
    如果没有怎么可能放在一条显示呢。
      

  7.   

    思路是沒有问题的。我只取PS和DT的資料﹐其它的不取數據﹐只要字段就行了。
    像select distinct ps, dt,'' as sl, '' as bz from a是行的﹐但只是一個表﹐我要的是在兩個表中取資料條數。
      

  8.   

    只以PS和DT为条件取資料显示出来就行了﹐重复的只显示一条。其它的字段不取值﹐只要显示字段名称就行了。就如下结果:
      ps  dt  rk  sl  bz
      11  aa        
      22  bb        
      33  cc        
      44  dd       
      

  9.   

    select a.* from a,b where a.ps = b.pa and a.dt = b.dt
    union
    select a.* from a,b where not (a.ps = b.pa and a.dt = b.dt)
    union
    select b.* from a,b where not (a.ps = b.pa and a.dt = b.dt)楼主测试一下是否可以
      

  10.   

    //////////只以PS和DT为条件取資料显示出来就行了﹐重复的只显示一条。其它的字段不取值﹐只要显示字段名称就行了。就如下结果:
      ps  dt  rk  sl  bz
      11  aa        
      22  bb        
      33  cc        
      44  dd如果这样的话很好办:
    select distinct * from
    (select ps,pt,'' as sl, '' as bz from a
     union
     select ps,pt,'' as sl, '' as bz from a) t
      

  11.   

    sorry如果这样的话很好办:
    select distinct * from
    (select ps,pt,'' as rk,'' as sl, '' as bz from a
     union
     select ps,pt,'' as rk,'' as sl, '' as bz from b) t
      

  12.   

    不好意思﹐這几天出差去了﹐沒有看帖。to:hanlin2004(乘千里风破万里浪) 
    你的意思跟hqhhh(枫叶)開始說的一樣。to:hqhhh(枫叶) 
      現在看來只有按你所說的分兩步了。其它不知道還有什么更好的辦法﹖
      

  13.   

    不好意思﹐這几天出差去了﹐沒有看帖。to:hanlin2004(乘千里风破万里浪) 
      你的意思跟hqhhh(枫叶)開始說的一樣。to:hqhhh(枫叶) 
      現在看來只有按你所說的分兩步了。其它不知道還有什么更好的辦法﹖