使用If句子查询

时间:2011-10-11 15:47:40

标签: sql sql-server sql-server-2008

我需要进行查询以验证作物种植日期和作物收获。从“ Clt_Sembrado ”表中,取决于表格中的培养代码 Clt_Desglose

例如:

如果产品(种植)有代码(表“Clt_Desglose”)= 0111.01或0111.02,那么收获日期(Clt_Sembrado中的d_MesAnioSiembra)必须更少比种植日期(在Clt_Sembrado的d_MesAnioCosecha)+ 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

如何进行此查询?感谢..

1 个答案:

答案 0 :(得分: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

相应地将概念调整为您的查询。