表1:
  姓名   年龄
  张三   20
  李里   23
  王五   13
  马六   18
  .....表2:
  姓名   配偶
 张三   李四
 李四   张三
 王五  (空)
(空)  马六
 .....现在要做以下操作,如果表2中:
 姓名   配偶
 张三   李四
 李四   张三
是这样的一个结构,就是姓名和配偶都对应有名字,就到表1中去查询出张三和李四的年龄总和我用的语句是:
select a.姓名,a.配偶, b.年龄+c.年龄 as 年龄总和 from 表2 a
left join 表1 b on a.姓名=b.姓名
left join 表1 c on a.配偶=c.姓名
where 姓名 is not null and 配偶 is not null
但是查出来的结果为:
姓名  配偶  年龄总和  
张三  李四  43
李四  张三  43有重复了,上面的那个SQL 语句 怎么写,输出才不会有重复,请 高手指点!在线等,谢谢了!~~

解决方案 »

  1.   

    select a.姓名,a.配偶, b.年龄+c.年龄 as 年龄总和 from 表2 a
    left join 表1 b on a.姓名=b.姓名
    left join 表1 c on a.配偶=c.姓名
    where a.姓名>a.配偶 and a.姓名 is not null and a.配偶 is not null
      

  2.   

    libin_ftsafe  谢谢了 ,这个问题   搞了几天了 今天终于搞定写了!
    谢谢所有帮忙的朋友!
    给分拉!~
      

  3.   

    select top 1 a.姓名,a.配偶,((select 年龄 from 表1 where 表1.姓名=a.姓名) + (select 年龄 from 表1 where 表1.姓名=a.配偶)) as 总年龄
    from 表2 a,表2 b 
    where a.姓名=b.配偶 and a.配偶=b.姓名