给你个思路:
WITH Messages (ID,ToEmpID,FromEmpID,SendDate,Detail) AS(
SELECT 1,'张三','李四','2014/06/05','a' UNION ALL
SELECT 2,'王五','张三','2014/06/03','b' UNION ALL
SELECT 3,'刘六','张三','2014/06/02','b' UNION ALL
SELECT 4,'张三','李四','2014/05/05','a' UNION ALL
SELECT 5,'王五','张三','2014/05/03','b' UNION ALL
SELECT 6,'刘六','张三','2014/05/02','b'
)
SELECT ID,ToEmpID,FromEmpID,SendDate FROM Messages a
WHERE ID in
(
SELECT TOP 1 ID
FROM Messages
where ToEmpID=aToEmpID AND FromEmpID=aFromEmpID
ORDER BY SendDate DESC
)
Select AsendtoWhom,
sendDate = Isnull((
Select Top 1 BsendDate From sendChat B
Where BsendtoWhom = AsendtoWhom
And BsendEmail='aa@sinacom'
Order by BsendDate Desc
),'')
From
(select distinct sendtoWhom
from sendChat
where sendEmail='aa@sinacom'
order by sendDate desc) A
select from
(select
a,
row_number() over (partition by acol_a order by create_ts desc) as rn
from table1 a )
where rn = 1;
-- table1 换成你的表, col_a 换成你的分组列, create_ts 是你的时间戳字段, 如果是字符串需转换为date
从数据库中取出的日期格式是2009-7-2 10:00:00
可以用下面的函数转化为utilDate格式,用utilDate可以分别取出年月日
日期所使用的字符串格式
/
private static DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
/
转换日期到字符串
@param date
日期
@return 字符串
/
public static String convertDateToString(Date date) {
return formatformat(date);
}
/
转换字符串到日期
@param str
字符串
@return 日期
/
public static Date convertStringToDate(String str) {
Date date;
try {
date = formatparse(str);
return date;
} catch (ParseException e) {
eprintStackTrace();
}
return null;
}
以上就是关于SQL中如何选择表中日期最大值全部的内容,包括:SQL中如何选择表中日期最大值、SQL查询唯一的数据并按时间降序怎么写、oracle分组统计查询之后,获取数量最大的记录等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)