我需要查询供应某些条件。
例如:如果 c_Fk_CodCiiu4 是0112.01或0126.01,那么 ti_Fk_CodUnidadMedida 应该是= 01或02或03.在同一张表中,如果 c_Fk_CodCiiu4 是0113.01或0113.2然后 ti_Fk_CodUnidadMedida 应为= 14或17或19.如果 c_Fk_CodCiiu4 为0114.01或0114.02或0114.03,则在同一表中 ti_Fk_CodUnidadMedida 应该是= 01或19或17 ......等等。
我还有另外两个条件:
好的,现在这里的表是变量。
这是我的查询,我需要将所有条件放在查询中,我该怎么做?
SELECT
'Pregunta (12).Cultivo Anual' as Numero_Pregunta,
c_Fk_IdBoleta as Numero_Boleta,
'La unidad de medida, no corresponde al tipo de cultivo.' as Detalle_Error,
sembrado.si_Pk_NumSiembra
FROM
Clt_Sembrado as sembrado, Clt_Desglose as desglose
WHERE ((sembrado.c_Fk_IdBoleta = 45550711)
AND(sembrado.si_Fk_IdDesglose = desglose.si_Pk_IdDesglose)
AND (c_Fk_CodCiiu4 LIKE
CASE WHEN (c_Fk_CodCiiu4 = 0112.01
OR c_Fk_CodCiiu4 = 0126.01)
AND
(sembrado.ti_Fk_CodUnidadMedida <> 1
OR sembrado.ti_Fk_CodUnidadMedida <> 2
OR sembrado.ti_Fk_CodUnidadMedida <> 3
OR sembrado.ti_Fk_CodUnidadMedida <> 8)
THEN NULL))
ELSE
((desglose.c_Fk_CodCiiu4 = 0113.01
OR desglose.c_Fk_CodCiiu4 = 0113.02)
AND(sembrado.ti_Fk_CodUnidadMedida <> 14
OR sembrado.ti_Fk_CodUnidadMedida <> 17
OR sembrado.ti_Fk_CodUnidadMedida <> 19)))
ELSE
((desglose.c_Fk_CodCiiu4 = 0114.01
OR desglose.c_Fk_CodCiiu4 = 0114.02)
AND(sembrado.ti_Fk_CodUnidadMedida <> 1
OR sembrado.ti_Fk_CodUnidadMedida <> 19
OR sembrado.ti_Fk_CodUnidadMedida <> 17)))
答案 0 :(得分:1)
您可以利用NOT IN和IN运算符。
AND(sembrado.ti_Fk_CodUnidadMedida NOT IN (1, 19, 17)