Select * From SendTime A Where Not Exists
(Select 1 From SendTime Where 号码=A.号码 And
Convert(Varchar(10),发送时间,120)=Convert(Varchar(10),A.发送时间,120) And
发送时间>A.发送时间)
Order By 号码,发送时间--------------------
這裡是逐條判斷的。首先第一條數據,看看SendTime表中,有沒有号码和當前數據相同,並且是今天的數據,時間比當前數據時間大的,有。這時,就不滿足Not Exists這個條件,所以第一條去掉。然後第二條,SendTime表中沒有号码和當前數據相同,並且是今天的數據,時間比當前數據時間大的數據。就滿足Not Exists這個條件,所以這一條保留。以下類似.
(Select 1 From SendTime Where 号码=A.号码 And
Convert(Varchar(10),发送时间,120)=Convert(Varchar(10),A.发送时间,120) And
发送时间>A.发送时间)
Order By 号码,发送时间--------------------
這裡是逐條判斷的。首先第一條數據,看看SendTime表中,有沒有号码和當前數據相同,並且是今天的數據,時間比當前數據時間大的,有。這時,就不滿足Not Exists這個條件,所以第一條去掉。然後第二條,SendTime表中沒有号码和當前數據相同,並且是今天的數據,時間比當前數據時間大的數據。就滿足Not Exists這個條件,所以這一條保留。以下類似.
解决方案 »
- 能不能判断一句SQL是代码执行的还是手工在数据库执行的?
- sqlserver 的DateTime字段能不能只储存时间而不储存日期?
- 这里高手如云,求oracle8i的三表全外连接语句
- 请问如何查询varchar类型字段的最大值(字母数字混合的)
- ============求这样的sql语句如何写?有点难度!
- sqlserver计算字段可以包含判断条件吗?
- 1。事件探查器 与 SP_TRACE_CREATE 跟踪有什么区别?为什么使用事件探查器时.trc文件可以保存在客户端,而使用 SP_TRACE_CREATE不
- 如何在SQL65下面把数据库备份成为SQL脚本。
- 请问,用什么SQL语句可以修改表的字段类型,高分!!
- 大家帮帮忙吧,有点问题。sql代码
- MSSQL的rowcount问题
- 作业日志导出问题
1在这没有意义的,这换成什么也是一样的,你还没有理解Exists
Exists 存在,只会返回真假,你可以这样想,外面的查询给一条记录内的子查询,子查询看这记录d存在不,不存在,返回一个空,那这记录就否决了
我认为上面的语句这样写并不好
-------
LS你觉得上面这条语句怎么写才算合理呢????
LZ鱼已经解释的比较详细了...
select 1 这个1没有实际意义,只是很多人习惯用法而已
declare @table table (号码 int,发送时间 Datetime)Insert @table Select 1381,'2007-08-02 17:51:00.000'
Union ALl Select 1381,'2007-08-02 18:26:00.000'
Union ALl Select 1382,'2007-08-02 19:31:00.000'
Union ALl Select 1381,'2007-08-03 11:21:00.000'SELECT 号码,CONVERT(VARCHAR(10),发送时间,102) AS 发送日期,max(发送时间)AS 发送时间
FROM @table GROUP BY 号码,CONVERT(VARCHAR(10),发送时间,102)
我认为上面的语句这样写并不好
-------
LS你觉得上面这条语句怎么写才算合理呢????
LZ鱼已经解释的比较详细了...
select 1 这个1没有实际意义,只是很多人习惯用法而已
-------------------------------------------------
可能你没有明白我指的是楼主这样写的语句子不好
from SendTime where 号码 in (select 号码 from SendTime group by 号码)
group by 号码,DATEPART(day,发送时间)
这也是一种方法吧!谢谢大家的帮忙。现在理解了,太舒服了 。