将 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个回答
0
投票

在 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.