Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

SQL में स्थिति समस्या कहां है

मुझे लगता है कि आप 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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - परिकलित डेटा संग्रहीत बनाम फ्लाई पर फ़ील्ड की गणना करना

  2. MySQL और SQL में क्या अंतर है?

  3. एक MySQL डीबी को एक्सएमएल में कैसे परिवर्तित करें?

  4. दिनों में MySQL और PHP दिनांक अंतर की गणना करना

  5. अभी सेट करें () डेटाटाइम डेटाटाइप के लिए डिफ़ॉल्ट मान के रूप में?