sql语句 获取 最大时间 最小时间 group by 筛选

如下:检索期间例如:2014/10/1---2014/10/10,一个人一天可能有多条数据,只取那一天时间点最小和最大的:这是从两个表IOData和CardData里面取... 如下:检索期间例如:
2014/10/1---2014/10/10 ,一个人一天可能有多条数据,只取那一天时间点最小和最大的:
这是从两个表IOData和CardData 里面取出来的数据。
0003 E0CD9E 张1 2014/10/9 08:25:15 02-5
0003 E0CD9E 张1 2014/10/9 09:31:32 02-5
0003 E0CD9E 张1 2014/10/9 09:32:48 02-5
0003 E0CD9E 张1 2014/10/9 11:31:27 02-5
0005 E515E7 李2 2014/10/8 13:10:10 02-5
0005 E515E7 李2 2014/10/8 18:44:43 02-5
0005 E515E7 李2 2014/10/8 20:41:36 02-5
还有一个条件没有满足,最大最小时间,满足后应该是这样的:

0003 E0CD9E 张1 2014/10/9 08:25:15 02-5
0003 E0CD9E 张1 2014/10/9 11:31:27 02-5
0005 E515E7 李2 2014/10/8 13:10:10 02-5
0005 E515E7 李2 2014/10/8 20:41:36 02-5
目前只做到,检索期间的条件,
commondSql = "SELECT D.CardNo,C.CardID,D.HolderName,D.IODate,D.IOTime,D.IOGateNo from IOData D,CardData C "
commondSql = commondSql + "WHERE D.IODate >= #" + MniDate + "# AND D.IODate<=#" + MaxDate + "#"
commondSql = commondSql + "and D.CardNo=C.CardNo ORDER BY D.CardNo,D.IODate,D.IOTime ASC"
以前问过,没捣鼓出来。
谢谢!
展开
 我来答
清水非水
2014-12-24 · 超过31用户采纳过TA的回答
知道答主
回答量:91
采纳率:0%
帮助的人:47万
展开全部

我看了一下 你的那个表  当holderName一样时,只有时间会不一样对不对。我觉得可以这样写


SELECT D.CardNo,C.CardID,D.HolderName,D.IODate,min(D.IOTime) as IOTime,D.IOGateNo   
from IOData  D,CardData  C
where D.CardNo=C.CardNo
group by D.CardNo,C.CardID,D.HolderName,D.IODate,D.IOGateNo
union all
SELECT D.CardNo,C.CardID,D.HolderName,D.IODate,max(D.IOTime) as IOTime,D.IOGateNo   
from IOData  D,CardData  C
where D.CardNo=C.CardNo
group by D.CardNo,C.CardID,D.HolderName,D.IODate,D.IOGateNo
更多追问追答
追问
我研究了一下,觉得写的很对,拿到程序运行了一下,报错SQL语句错误,貌似不能识别union all .我用的vb.net  数据库是mysql.mysql可不好使了。。。
追答
报的什么错  弄出来看看呗
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式