मुझे लगता है कि आप validFrom
. तक पहुंचने का प्रयास कर रहे हैं और validTo
जहां स्थिति में केस क्वेरी से। यदि ऐसा है, तो आपको अपनी क्वेरी को पुन:स्वरूपित करने की आवश्यकता है।
SELECT t1.* FROM ( SELECT mPrice, aPrice,
CASE
WHEN validFrom < '2013-11-01'
THEN '2013-11-01'
ELSE validFrom END AS validFrom,
CASE
WHEN validTo > '2013-11-30'
THEN '2013-11-30'
ELSE validTo END AS validTo
FROM commission) t1
WHERE ((t1.validfrom BETWEEN '2013-11-01' AND '2013-11-30') OR (t1.validto BETWEEN '2013-11-01' AND '2013-11-30')) ORDER BY t1.validFrom
लेकिन यह 3 परिणाम लौटाएगा। यदि आपको अपेक्षित परिणाम प्राप्त करने की आवश्यकता है, तो आपको AND
. का उपयोग करने की आवश्यकता है OR
. के बजाय शर्त ।
तब आपकी क्वेरी होगी
SELECT t1.* FROM ( SELECT mPrice, aPrice,
CASE
WHEN validFrom < '2013-11-01'
THEN '2013-11-01'
ELSE validFrom END AS validFrom,
CASE
WHEN validTo > '2013-11-30'
THEN '2013-11-30'
ELSE validTo END AS validTo
FROM commission) t1
WHERE ((t1.validfrom BETWEEN '2013-11-01' AND '2013-11-30') AND (t1.validto BETWEEN '2013-11-01' AND '2013-11-30')) ORDER BY t1.validFrom