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<alvhe...@alvh.no-ip.org> 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