读书人

SQL 嵌套查询有关问题

发布时间: 2013-03-22 09:49:50 作者: rapoo

SQL 嵌套查询问题

今天纠结了好长时间 , 才解决的一个问题 ,

问题原因是 求得多条数据中, 时间和日期是最大的一条数据

先前是以为只要msx 函数就可以解决的 ,

Select * from tableName where date=(select max(date) from TableName) and time =(select max(time) from TableName)

测试的时候发现取出的是一条数据, 因为测试的时候是一天中的两条数据, 没有不同的日期,所以当日以为是正确的 ,然而第二天写入数据了,要取出数据,却发现没有数据, 返回空的行, 以为都是代码又有问题 了,找了半天都没有 ,仔细看看了存储过程中的代码,发现这样返回的数据的确是空的。

这个是嵌套查询的语句。 先执行的是外部查询的语句 。

比如说有三条信息.用上面写的语句在SQL分析器中执行

SQL 嵌套查询有关问题

分析下这样的查询 先查找的是 日期 , 日期最大是下面两条语句 。 在对比时间 。 发现时间最大的只有一

条数据, 这样第二条数据就理所当然的被取出来了。 这个是当时测试的结果

SQL 嵌套查询有关问题

但后来我修改了数据 。第二天测试发现,数据为空了。 没有数据 。分析是这样的

查询到的最大天数是2013-03-18这条数据。第三行。 而时间最带的是21:12:21是第二条数据

这样与的结果就是没有交集,为空了。

SQL 嵌套查询有关问题

后来通过 查找课本和询问他人。 问题解决了 ,办法就是通过排序的方法

order by Desc 的降序排顺 ,排序可以是通过不同的方式,可以叠加的

上面的语句若果改正为以下语句,就会是想要结果

select top 1 * from T_CheckBill order by date desc,time desc

SQL 嵌套查询有关问题

以上是自己的发现。 交流是一定要的,不然自己的想法很局限了

1楼han_yankun2009昨天 21:47
加油

读书人网 >SQL Server

热点推荐