请教一个MSSQL查询语句的问题

来源:百度知道 编辑:UC知道 时间:2024/06/30 12:54:28
在3个表中查询,如何有几条相同的记录,如何查询后只返回一条记录呢?

from 住院病人描述表 inner join 住院信息表 on 住院病人描述表.fname=住院信息表.fname inner join 住院登记表 on 住院信息表.fkeyid=住院登记表.fregistid

这上面的fkey和fregistid 应该为如果有多条相同的数据,但只要求显示一条数据
麻烦吧 最后 修改的语句 发上

注意不只是一条数据 是N多条 其中还包括其他的数据

from 住院病人描述表 inner join 住院信息表 on 住院病人描述表.fname=住院信息表.fname inner join (Select fregistid From 住院登记表 Group By fregistid) C on 住院信息表.fkeyid=C.fregistid

补充下:
select 3个表中其他要查询的字段,distinct 住院信息表.fkeyid,distinct 住院登记表.fregistid from 住院病人描述表,住院信息表,住院登记表 where 住院病人描述表.fname=住院信息表.fname and(or) 住院信息表.fkeyid=住院登记表.fregistid

//注释:‘3个表中其他要查询的字段’根据你的需要自己写吧,格式为‘表.字段’。 where 的两个条件如果需要同时满足用and,如果是满足任何一个均可就用or

select max(住院登记表), 描述, 信息,登记
from 住院病人描述表
inner join 住院信息表 on 住院病人描述表.fname = 住院信息表.fname
inner join 住院登记表 on 住院信息表.fkeyid = 住院登记表.fregistid
group by 描述, 信息,登记
登记就有登记日期吧
按照这个sql ,字段自己改一下就好了 吧 max(住院登记表), 后面的字段 都写到group by 就可以用了

select top 1 FROM(表1 inner join 表2 on 表1.字段号=表2.字段号)inner join 表3 on 表1.字段号=表3.字段号
下边是查询不重复name段的值和time值
也就是如果有多个重复的name 只取一个。
select distinct(name),min(time) as time from table group by name
自己组合一下吧 试试吧 我也不怎么会,只好提供一下想法啦

where 条件加上