作业帮 > 综合 > 作业

SQL 两个表联合查询记录中取最大值

来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/07/15 05:51:36
SQL 两个表联合查询记录中取最大值
表1
OnDate ITEM_ID MZZYH
2012-12-25 17:20:00 1 5
2012-12-25 15:00:20 2 5
2012-12-25 16:00:00 3 5
2012-12-25 10:50:23 1 5
2012-12-25 10:10:09 2 5
2012-12-25 10:10:10 3 5
表2
ITEM_ID ITEM_NAME VALUE UNIT
1 a 1.2-1.5 IU/ml
2 b 2-4 IU/ml
3 c 2-3 IU/ml
上面两个表我需要查找得到“ITEM_NAME 、 OnDate、 VALUE、 UNIT”这几个字段的值,查找条件是知道 MZZYH字段的值,要求满足查找结果中ITEM_NAME的值不能重复出现,如果有相同的取相应的OnDate中最大的值
SELECT a.ITEM_NAME,a.REFERENCE_VALUE,a.UNIT,b.OnDate FROM ItemInfo a,PatientResult b WHERE a.ITEM_ID=b.ITEM_ID and b.MZZYH='5'
用上面语句查询得到的结果是
a 1.2-1.5 IU/ml 2012-12-25 17:20:00.000
b 2-4 IU/ml 2012-12-25 15:00:20.000
c 2-3 IU/ml 2012-12-25 16:00:00.000
a 1.2-1.5 IU/ml 2012-12-25 10:50:23.000
b 2-4 IU/ml 2012-12-25 10:10:09.000
c 2-3 IU/ml 2012-12-25 10:10:10.000
ITEM_NAME重复了
SQL 两个表联合查询记录中取最大值
select b.ITEM_NAME,b.VALUE,b.UNIT,a.ddd
from (select ITEM_ID,MAX(OnDate) as ddd from 表1 where MZZYH='5' Group By ITEM_ID) a inner join 表2 b
on a.ITEM_ID = 表2.ITEM_ID
这个是对的