查询比较几个日期

我需要一些比较日期,我的查询在第一个查询得到3日期=> 2011-09-01,2011-10-01,2011-11-01

而在第二个查询3日期=> 2011-07-01,2011-11-01,2011-08-01

那么,如何对它们进行比较,并避免这种SQL错误?:

“子查询返回多个值,则以下时,这是不正确=,!=,<,<=,>,> =或用作表达式时。”

谢谢

SELECT c_Fk_IdBoleta as Numero_Boleta, 'Pregunta (12)' as Numero_Pregunta, 'El período transcurrido entre 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 ( SELECT sembrado.d_MesAnioCosecha FROM Clt_Sembrado as sembrado, Clt_Desglose as desglose WHERE sembrado.si_Fk_IdDesglose = desglose.si_Pk_IdDesglose AND sembrado.c_Fk_IdBoleta = 45550711 ) > (SELECT DATEADD(Month,6,sembrado.d_MesAnioSiembra) FROM Clt_Desglose as desglose, Clt_Sembrado as sembrado WHERE (((sembrado.si_Fk_IdDesglose = desglose.si_Pk_IdDesglose)AND (desglose.c_Fk_CodCiiu4 = 0112.00 OR desglose.c_Fk_CodCiiu4 = 0111.01 OR desglose.c_Fk_CodCiiu4 = 0111.02 OR desglose.c_Fk_CodCiiu4 = 0113.01 OR desglose.c_Fk_CodCiiu4 = 0113.03 OR desglose.c_Fk_CodCiiu4 = 0113.05 OR desglose.c_Fk_CodCiiu4 = 0113.06 OR desglose.c_Fk_CodCiiu4 = 0113.07 OR desglose.c_Fk_CodCiiu4 = 0113.08 OR desglose.c_Fk_CodCiiu4 = 0113.10 )) AND sembrado.c_Fk_IdBoleta = 45550711))

这里是表:问题一个培育学院可以在表Blt_Sembrado被插入一次或多次,我需要验证该d_MesAnioCosecha是以下(d_MesAnioSiembra + 6个月)。 对于表中Blt_Sembrado每个插入的培育学院。

查询比较几个日期

--------------解决方案-------------

你的问题是在这里:

AND sembrado.c_fk_idboleta = 40480711) > (SELECT ...

为了使这项工作,你必须确保你的子选择将最多返回一个值。

如果你的约会必须大于所有日期返回,那么它的同大于最大的返回日期,从而利用MAX将解决您的问题:

AND sembrado.c_fk_idboleta = 40480711) > (SELECT
Dateadd(MONTH, 6, max(sembrado.d_mesaniosiembra))
...

分类:SQL 时间:2012-01-05 人气:204
本文关键词: SQL
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.210 (s). 9 q(s)