-1

这是我的餐桌信息,

__测试

id  points   date
1    -50    30.09.2013
2    100    2.10.2013
3    100    3.10.2013
4    200    4.10.2013 

从这里我需要选择记录,如果任何值包含基于日期的减分

例如:

select * 
from #__test 
where date between  30.09.2013 to  3.10.2013 

提到的查询对于进入两个日期的记录之间很常见。但是我需要两个日期之间的记录,如果任何值包含减分。

我怎样才能做到这一点 ?请帮助我。

4

1 回答 1

0

我认为这就是你所追求的:

SELECT  * 
FROM    #__test t
WHERE   t.Date BETWEEN '20130930' AND '20131003'
AND     EXISTS
        (   SELECT  1
            FROM    #__test t2
            WHERE   t2.Date BETWEEN '20130930' AND '20131003'
            AND     t2.points < 0
        );

它只是检查日期范围内是否存在负值,如果找到,则返回该日期范围内的所有记录。

NB这篇关于使用日期范围的文章可能值得一读,在Aaron Bertrand写的另一篇文章BETWEEN中有关于日期范围查询的进一步阅读

于 2013-10-10T09:55:54.213 回答