-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 

言及されたクエリは、2つの日付のレコードの間に入るのが一般的ですが、値のいずれかにマイナスポイントが含まれている場合、2つの日付の間のレコードが必要です。

これどうやってするの ?親切に私を助けてください。

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
        );

日付範囲に負の値が存在するかどうかを単純にチェックし、見つかった場合はその日付範囲のすべてのレコードを返します。

注意:この記事は、日付範囲の使用に関しておそらく読む価値がありますBETWEEN。日付範囲クエリについては、 Aaron Bertrandによって書かれた別の記事を参照してください。

于 2013-10-10T09:55:54.213 に答える