sql >> データベース >  >> RDS >> Mysql

SQLでのWHERE条件の問題

    validFromにアクセスしようとしていると思います およびvalidTo where条件のケースクエリから。その場合は、クエリを再フォーマットする必要があります。

    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. スタックバーの日付範囲ごとに複数のスタック列を表示するにはどうすればよいですか

    2. PDOと挿入中の複数の値セットのバインド-最近

    3. C++を使用してmysqlに接続します

    4. PowerBIDesktopビジュアライゼーションでのデータのフォーマット