求教一个sql语句

来源:百度知道 编辑:UC知道 时间:2024/05/27 03:42:12
a 表
---------
姓名 年龄
张3 18
李4 19
张5 20
李6 21
张7 22
李8 23

b 表
----------
姓名 配偶
张3 张5
李4 张7
请问,我想统计 B表里面 top 2个人的年龄总和,该怎么写sql 呢?
既是统计出张3+张5的年龄 和 李4+张7 ,他们2者中的最大的数值,并且把最大的数值的那组人的 姓名和年龄单独显示出来

哈!哈!这下你应该给我分啦!
突然想到一个最好最简单的解决办法:

表一名 "个人信息"
列名 "姓名","年龄"

表二名 "配偶关系"
列名 "姓名","配偶"

SELECT a.姓名,a.配偶,b.年龄 主人年龄,c.年龄 配偶年龄,b.年龄+c.年龄 合计年龄 FROM 配偶关系 AS a,个人信息 AS b,个人信息 AS c WHERE a.姓名=b.姓名 AND a.配偶=c.姓名 ORDER BY 合计年龄 DESC;

******************************************
给你一个解决方案
表一名 "个人信息"
列名 "姓名","年龄"

表二名 "配偶关系"
列名 "姓名","配偶"

SELECT j.姓名,k.配偶,j.年龄 AS 主人年龄,k.年龄 AS 配偶年龄,合计年龄=j.年龄+k.年龄
FROM (SELECT b.姓名,a.年龄 FROM 个人信息 AS a,配偶关系 AS b WHERE b.姓名=a.姓名) AS j,
(SELECT d.配偶,c.年龄 FROM 个人信息 AS c,配偶关系 AS d WHERE d.配偶=c.姓名) AS k,
配偶关系 AS l WHERE l.姓名=j.姓名 AND l.配偶=k.配偶 ORDER BY 合计年龄 DESC;

如果你还可以加上TOP 1限制只显示合计年龄最大的那一行哦!
记住原始的两张表格里的内容必须得正确和完整才行,要不有可能得出的就是不正确的结果啦!

SELECT top 2 * from b 表 order by 年龄A,年龄B desc

返回两个结果,但是有一个结果所有值里最大的,然后再asp判断两个项。