oracle中,我需要从d表和c表取这几个数据d.record_no, d.in_times, d.name, d.sex, c.name as nation, d.in_date, d.doct_code, d.doct_name, d.out_date, d.out_dept, d.outdept_code, d.oper_date, d.oper_name, d.instate, d.caseno, d.idcardno, d.bedno 我需要在record_no相同的时候取in_times最大的那一条,sql怎么写
时间: 2024-02-21 07:00:53 浏览: 68
您可以使用以下 SQL 语句来获取您所需的数据:
```
SELECT d.record_no, d.in_times, d.name, d.sex, c.name AS nation, d.in_date, d.doct_code, d.doct_name, d.out_date, d.out_dept, d.outdept_code, d.oper_date, d.oper_name, d.instate, d.caseno, d.idcardno, d.bedno
FROM d
JOIN c ON d.c_id = c.c_id
WHERE (d.record_no, d.in_times) IN (
SELECT record_no, MAX(in_times) AS in_times
FROM d
GROUP BY record_no
)
```
这个 SQL 语句使用了一个子查询,来获取每个 record_no 对应的最大 in_times 值。然后,使用 JOIN 连接表 c,来获取国籍信息。最后,使用 WHERE 子句,来过滤出仅包含最大 in_times 值的记录。
阅读全文