Gracias a todos por su ayuda y efectivamente tal como dice Alvaro, lo
recomendado por Mario es la solución, les dejo la consulta tal como
quedó al final:
SELECT
mun.reg_cod,
mun.pro_cod,
mun.com_cod,
mun.com_nom,
sost.nom_sost,
mun.ano_pago,
mun.mes_pago,
mun.ley_19933_new,
mun.ley_20006_new,
mun.ley_20158_new,
mun.ley_20159_1_new,
mun.ley_20159_11_new,
mun.ley_20244,
mun.total_monto_new,
mun.adec_doce
FROM
dbo.pago mun,
dbo.sostenedor sost
WHERE
mun.reg_cod = 5
AND
mun.pro_cod = 5
AND
mun.com_cod = 2
AND
sost.rut_sost = 70872300
AND
((ano_pago =2007 and mes_pago >= 7) or (ano_pago > 2007))
ORDER BY
mun.reg_cod,
mun.pro_cod,
mun.com_cod,
mun.ano_pago,
mun.mes_pago
Sólo debí agregar un par de paréntesis exteriores a lo indicado por Mario.
No sabía que se podían usar condiciones anidadas
saludos,
El 17 de agosto de 2009 12:39, Alvaro Herrera<[email protected]> escribió:
> Mario Wojcik escribió:
>> Sergio Valdes Hurtado wrote:
>> > Estimados, les cuento mi problema:
>> > tengo una tabla que contiene estos campos:
>> > id_rex int4 NOT NULL,
>> > num_reso int4 NOT NULL,
>> > num_cuota int4 NOT NULL,
>> > monto_cuota int4 NOT NULL,
>> > mes_pago int4 NOT NULL,
>> > agno_pago int4 NOT NULL
>
>> Hola.
>> SELECT * FROM pagos WHERE (agno_pago = 2007 AND mes >= 7) OR (agno_pago
>> > 2007)
>
> De todas las sugerencias que se han hecho hasta el momento, esta es la
> que más probablemente va a poder resolverse usando índices. Las que
> involucran expresiones aritméticas o construir fechas usando
> concatenación van a ser más lentas.
>
> --
> Alvaro Herrera http://www.amazon.com/gp/registry/3BP7BYG9PUGI8
> "Everybody understands Mickey Mouse. Few understand Hermann Hesse.
> Hardly anybody understands Einstein. And nobody understands Emperor Norton."
>
--
TIP 3: Si encontraste la respuesta a tu problema, publícala, otros te lo
agradecerán