将 MY SQL 查询转换为视图时出现警告 1292

问题描述 投票:0回答:1

我正在尝试执行以下查询,但它显示警告 1292

CREATE VIEW fr1 
AS
    SELECT  
        country, state, city, docname, price1, discunt, tot4, 
        tech1, remarks3, remarks4, 
        EXTRACT(YEAR_MONTH FROM ddd) AS month1,
        CASE 
            WHEN docname = 'Dr. Mariam' OR 'Dr. Dania Dilshad' AND (tot4 - zzz4) > 0   
                THEN 100 - (zzz3 + 15)        
                ELSE zzz1 
        END AS nzzz1,
        CASE 
            WHEN docname = 'Dr. Mariam' OR 'Dr. Dania Dilshad' AND (tot4 - zzz4) > 0
                THEN 15        
                ELSE zzz2 
        END AS nzzz2,
        CASE 
            WHEN remarks4 = 'Card' 
                THEN tot4 * 0.02 
                ELSE 0 
        END AS dedcharge,
        zzz3, zzz4, zzz5
    FROM 
        iap4 

mysql view
1个回答
1
投票

在 OR 子句中使用多个条件时,需要用括号将它们正确分组,以确保计算正确

“OR”条件应该是这样的

 docname = 'Dr. Mariam' OR docname = 'Dr. Dania Dilshad'

这是完整更新的查询

CREATE VIEW fr1 AS
SELECT  
    country, 
    state, 
    city, 
    docname, 
    price1, 
    discunt, 
    tot4, 
    tech1, 
    remarks3, 
    remarks4, 
    EXTRACT(YEAR_MONTH FROM ddd) as month1,
    CASE 
        WHEN (docname = 'Dr. Mariam' OR docname = 'Dr. Dania Dilshad') AND (tot4 - zzz4) > 0 THEN 100 - (zzz3 + 15)
        ELSE zzz1 
    END as nzzz1,
    CASE 
        WHEN (docname = 'Dr. Mariam' OR docname = 'Dr. Dania Dilshad') AND (tot4 - zzz4) > 0 THEN 15
        ELSE zzz2 
    END as nzzz2,
    CASE 
        WHEN remarks4 = 'Card' THEN tot4 * 0.02 
        ELSE 0 
    END as dedcharge,
    zzz3, 
    zzz4, 
    zzz5
FROM iap4;
© www.soinside.com 2019 - 2024. All rights reserved.