sql中取时间最早对应的记录

2023-02-10 05:18

accno opdate optime……12 2011-03-01 12:01:0012 2011-03-01 12:00:0012 2011-03-04 11:00:0012 2011-03-04 11:01:00……怎么能让结果显示为 accno opdate optime ……12 2011-03-01 12:00:00 ……
2个回答
假如你的表, accno 只有一个 12的。 没有其他的 accno。 或者你无视 accno, 只找时间最早的那条。
那么:
SELECT TOP 1 * FROM 表名 ORDER BY opdate, optime;

假如你的表,有很多个 accno, 比如有 12, 13, 你要 分别把 12 与 13 的时间最早对应的记录查出来。
SELECT
*
FROM
表名
WHERE
NOT EXISTS (
SELECT 1
FROM 表名 AS tmp
WHERE 表名.accno = tmp.accno
AND 表名.opdate > tmp.opdate
AND 表名.optime > tmp.optime
);

理解起来,就是查询 表
对于每一个 accno,
不存在有其他的行,比当前行的 opdate 与 optime 更加小的。
从而取得 每一个 accno 的,日期时间最早的记录。
SELECT TOP 1 * FROM 表名 ORDER BY 时间
相关问答
sql 取每个用户的最新记录
1个回答2022-12-22 01:05
如果imagedate是时间的话. select top 1 * from 表 where userid=用户id order by imagedate desc;
sql 读取聊天记录,要分组最新
3个回答2022-12-26 10:22
1、为什么有 3 1 12:34 在不在回个话啊 而没有 2 1 12:31 随便 2、如果是有重复的,那应该是在相同时...
全文
sql语句 聊天记录,取最新一条
2个回答2022-12-24 00:18
select * from tabname t1, (select fid,max(time) time from tabname group by fid) max1 where t1.fid = ...
全文
SQL语句删除一个表中的多条记录
1个回答2022-05-29 18:13
到底是删行还是列
sql语句 聊天记录,取用户最新一条
2个回答2023-03-11 13:05
select * from 表A W where Sendtime=(select MAX(Sendtime) from 表A where sendid...
全文
SQL获取一周内或者一个月的数据的sql语句怎么写?
5个回答2022-08-10 12:46
用sql里面的datediff(datepart,startdate,endate) 时间差,及间隔数
写一个SQL能够取到一年的52周的所有记录(即返回52条记录)
1个回答2022-04-04 18:03
select top 52 row_number(), OVER (ORDER BY id) from sys.sysobjects
写一个SQL,能够取到2007年的365天的所有记录(即返回365条记录)
2个回答2022-08-09 01:35
不知道你啥数据库, 如果是 SQL Server 的, 那么很省事 SELECT DATEADD(dd, number , CONVERT(DATETIME, '2007-01...
全文
sql 语句查询一个表中不同的记录
1个回答2022-09-24 08:27
1:select distinct id,name from tb 2:select id,min(name)name from tb group by id