猿问

SQL查询获取最后一笔时间数据问题

数据库表如下:

    列A    列B    列C

    AA     20    2011-10-17 00:00:00

    BB     20    2011-10-17 00:00:00

    AA     20    2011-10-17 10:00:00

我想得到的结果是以‘列A’为分组条件、查询出‘列C’时间最大的数据、理想得到的结果如下:

    列A    列B    列C

    AA     20    2011-10-17 10:00:00

    BB     20    2011-10-17 00:00:00

 请大侠帮忙 啊

慕容708150
浏览 1667回答 12
12回答

叮当猫咪

SELECT t1.A, t1.B, t1.CFROM 表名 AS t1 RIGHT OUTER JOIN (SELECT A, MAX(C) AS C FROM 表名 GROUP BY A) AS t2 ON t1.A = t2.A AND t1.C = t2.C

神不在的星期二

select 列A,max(列C)as 列C into #temp from Table group by 列A;select b.* from #temp a,Table bwhere a.列A=b.列A and a.列C=b.列C

守着星空守着你

我要查询的不是MAX这个时间 、、是给定一个时间、小于等于我这个时间的就行了、

噜噜哒

@youwj: "查询出‘列C’时间最大的数据"是我们理解有问题?那你现在要查询的是什么?没看懂你补充的。

九州编程

@webaspx: 是查询列C的最大的那笔数据、但是我要加个Where条件、列C必须要小于我指定的一个时间

慕码人2483693

@youwj: select 列A,max(列C)as 列C into #temp from Table  where 列C<时间 group by 列A;这样就可以了啊

慕沐林林

@webaspx: 我说大哥,你按我说的试过吗?确认查询不出来你要的结果? 这是表的数据: 这是结果: 查询的是C小于2011-10-17 17:47:18.937的,然后GroupBy A求得各项最大时间的数据。

米琪卡哇伊

@webaspx: 呵呵 、之前按你的试了、要建临时表的、还报错、就没试了、现在搞出来了、你最新的应该也是可以的、 辛苦了、 谢谢  分豆

慕无忌1623718

select t1.A ,max( t1.c) from 表 as t1 group by t1.A 我不知道你的列B要不要考虑,你这个问题带入列B是错误的 如果列B一个20,一个30.你要取哪个呢??

慕尼黑5688855

我要查询的不是MAX这个时间 、、是给定一个时间、小于等于我这个时间的就行了、 列B的话就跟着这个时间的这列的
随时随地看视频慕课网APP

相关分类

SQL Server
我要回答