2011-10-11 142 views
0

我需要查询以验证作物种植日期和作物收获情况。从表中 “Clt_Sembrado”,在表根据栽培的代码的Clt_Desglose使用If语句查询

例如:

如果产物(培养)具有代码(表 “Clt_Desglose”)= 0111.01 OR 0111.02,然后收获(d_MesAnioSiembra在Clt_Sembrado)的日期必须大于种植的,我试图建立查询的日期(d_MesAnioCosecha在Clt_Sembrado)+6个月

。但我不知道如何使If句子。

这是查询,但我需要帮助验证这一点。

SELECT 
c_Fk_IdBoleta as Numero_Boleta, 
'Pregunta (12)' as Numero_Pregunta, 
'El período de siembra y cosecha no corresponde al tipo de cultivo' as Detalle_Error 
    FROM 
    Clt_Sembrado as sembrado 
    WHERE 
    sembrado.c_Fk_IdBoleta = 45550711 
    GROUP BY sembrado.c_Fk_IdBoleta, sembrado.d_MesAnioSiembra, sembrado.d_MesAnioCosecha, sembrado.si_Fk_IdDesglose 
    HAVING sembrado.d_MesAnioCosecha < (SELECT c_Fk_CodCiiu4 
             FROM Clt_Desglose as desglose 
             WHERE sembrado.si_Fk_IdDesglose = desglose.si_Pk_IdDesglose) 

而且这里是我需要的值表:

enter image description here

我怎样才能让这个查询?谢谢..

回答

0

您通过使用CASE语句实现条件。

例子:

select 
    name, 
    age, 
    case 
     when age < 13 then 'Child' 
     when age between 13 and 17 'Teenager' 
     when age between 18 and 20 'Young Adult' 
     else 'Adult' 
    end as AgeGroup, 
    case gender 
     when 'M' then 'Male' 
     when 'F' then 'Female' 
     else 'Unknown' 
    end as Gender 
from YourTable 

修改相应的概念来查询。