SQL 两个表联合查询记录中取最大值表1OnDate ITEM_ID MZZYH NRUL2012-12-25 17:20:00 1 5 1.22012-12-25 15:00:20 2 5 1.32012-12-25 16:00:00 3 5 1.42012-12-25 10:50:23 1 5 12012-12-25 10:10:09 2 5 12012-12-25 10:10:10 3 5 1表2ITEM_ID ITEM_NA

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/05 11:33:06

SQL 两个表联合查询记录中取最大值表1OnDate ITEM_ID MZZYH NRUL2012-12-25 17:20:00 1 5 1.22012-12-25 15:00:20 2 5 1.32012-12-25 16:00:00 3 5 1.42012-12-25 10:50:23 1 5 12012-12-25 10:10:09 2 5 12012-12-25 10:10:10 3 5 1表2ITEM_ID ITEM_NA
SQL 两个表联合查询记录中取最大值
表1
OnDate ITEM_ID MZZYH NRUL
2012-12-25 17:20:00 1 5 1.2
2012-12-25 15:00:20 2 5 1.3
2012-12-25 16:00:00 3 5 1.4
2012-12-25 10:50:23 1 5 1
2012-12-25 10:10:09 2 5 1
2012-12-25 10:10:10 3 5 1
表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重复了
-------
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
能够查到需要的数据了,现在在表1中新增了字段NRUL需要在结果中查找出来,条件还是不变取时间最大的值.

SQL 两个表联合查询记录中取最大值表1OnDate ITEM_ID MZZYH NRUL2012-12-25 17:20:00 1 5 1.22012-12-25 15:00:20 2 5 1.32012-12-25 16:00:00 3 5 1.42012-12-25 10:50:23 1 5 12012-12-25 10:10:09 2 5 12012-12-25 10:10:10 3 5 1表2ITEM_ID ITEM_NA
你首先要弄明白自己需要的数据应该具备哪些条件:
1. 按照Item_ID分组.
2. 取每组中OnDate中最大的记录,实际上就是取最新的数据.
3. 数据过滤条件是 MZZYH='5'
第一步:select max(OnDate)as date, ITEM_ID from PatientResult where MZZYH='5' group by ITEM_ID
上面的语句得到的记录集为按照ITEM_ID分组,获得每个分组的最新日期.
第二步,分析目前的三个记录集:
a)包含有 ITEM_ID , max(OnDate)的主记录,由第一步的查询结果得到,它的记录条数就是最后结果的记录条数.
b) 需要在结果中输出的 与主记录对应的PatientResult 原始表记录的内容.
c)与ITEM_ID对应的名字信息ItemInfo ,
其中记录集a为主记录,a与b之间的对应关系为a. ITEM_ID = b. ITEM_ID and a.date = b.OnDate
其中a与c的关系为 a.ITEM_ID = c. ITEM_ID
select b.*, c.* from (select max(OnDate)as date, ITEM_ID from PatientResult where MZZYH='5' group by ITEM_ID) as a, PatientResult as b, ItemInfo as c where a.ITEM_ID=b.ITEM_ID and a.date = b.OnDate and a.ITEM_ID=c.ITEM_ID
其实对于复杂的查询,最好采用临时表和存储过程,使查询变得非常简单明了,便于维护

SQL 两个表联合查询记录中取最大值表1OnDate ITEM_ID MZZYH NRUL2012-12-25 17:20:00 1 5 1.22012-12-25 15:00:20 2 5 1.32012-12-25 16:00:00 3 5 1.42012-12-25 10:50:23 1 5 12012-12-25 10:10:09 2 5 12012-12-25 10:10:10 3 5 1表2ITEM_ID ITEM_NA SQL 两个表联合查询记录中取最大值表1OnDate ITEM_ID MZZYH2012-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 表2ITEM_ID ITEM_NAME VALUE UNIT1 a SQL语句:表中记录的数据有学生姓名,性别,出生年月,但是查询要求的是姓名,性别和年龄,应该怎么写? sql 查询记录的最大值 该怎么写呀这样的sql查询 应该怎么写呀 编号 名称 状态A 甲 0B 乙 0A 甲 1B 乙 1 A 甲 2查询结果编号 名称 状态A 甲 2B 乙 1\\\\\\如果改成是4个字段呢.编号 名称 状态名 怎么用SQL语句查询student表中年龄最小的前三名学生信息? 求解数据库查询语句:设有两个基本表R(A,B,C)和S(D,E,F),试用SQL查询语句表达下列关系代数表达式设有两个基本表R(A,B,C)和S(D,E,F),试用SQL查询语句表达下列关系代数表达式:  (1 求数据库查询语句:设有两个基本表R(A,B,C)和S(D,E,F),试用SQL查询语句表达下列关系代数表达式有两个基本表R(A,B,C)和S(D,E,F),试用SQL查询语句表达下列关系代数表达式:   (1)πA 有两个基本表R(A,B,C)和S(D,E,F),试用SQL查询语句表达下列关系代数式1)R╳S SQL查询中,要将学生表中女生的入学成绩加10分,可使用的语句是 sql语句,同时查询某记录的平均值,最大值,最小值及最大值时间,最小值时间.数据表格式字段 日期,人名,数据1,[数据1时间],数据2,[数据2时间].要求:按人名分类查询,avg(数据1),avg(数据2),max( 有两个表A 和B ,均有key 和value 两个字段,如果B 的key 在A 中也有,就把B 的value 换为A 中对应的value上面sql文字,sql2000报错为:子查询返回的值多于一个.当子查询跟随在 =、!=、= 之后,或子查询用 sql语句中join ,left join ,right join有什么区别我试着吧一条sql多表查询语句join换成left ,查询的数据一下变多了很多 用SQL语句实现两个表的联立查询 两个表分别是科比常规赛数据和季后赛数据,要用到where和order by语句任何查询都可以的!我不知道怎么建立联立查询 SQL语句中的 Distinct 和 Group by 有什么不同,用那个好?select Distinct 品名,单位 from [表]和select 品名,单位 from [表]Group by 品名,单位查询的结果是一样的,都是把相同的记录合并为一条,这两个有什么 求一个sql语句,已知集合中的所有元素,查询出集合ID表结构为SetID Element1 011 021 032 022 04给你一个集合的全部元素,从表中查询出这个集合的ID.例如给你{01,02,03}查询出SetID=1,给你{02,04}查询出SetID=2 sql 中的case与group by有一张表,三个字段:语文、数学、英语.其中有三条记录分别表示语文70、数学80、英语58 请用一条sql语句查询出这三条记录并按以下条件显示出来(并写出思路) 大于等 我想问下一句查询最大值与最小值的sql语句我是这么写的但是会报错select min(price),max(price)from 表 where price>190price比如是1-10000,我的目标是查询之后显示出的事大于190的并且在旁边显示PRI 设有两个基本表R(A,B,C)和S(A,B,C)试用SQL查询语句表达下列关系代数表达式:(1)R∪S (2)R∩S (3)R-S