Estimados estoy pasando una consulta sql que diseƱe en access 2003 y el resultado fue el stge: SELECT Month([fec_docto]) AS Expr1, Year([fec_docto]) AS Expr2, public_docto_ingreso.cod_ret, public_docto_ingreso_det.cod_tipd, public_docto_ingreso.rut_prov, public_docto_ingreso_det.cod_docto, public_docto_ingreso.docto_asoc, public_proveedores.nom_prov, public_retencion.val_ret, Sum(public_docto_ingreso_det.can_docto_det) AS SumaDecan_docto_det, Sum(public_docto_ingreso_det.val_docto_det) AS SumaDeval_docto_det, public_producto.cod_3500, public_tipo_docto.cod_tdocto, public_producto.des_prod, public_producto.cod_prod FROM (public_retencion INNER JOIN (public_tipo_docto INNER JOIN (public_proveedores INNER JOIN (public_docto_ingreso INNER JOIN public_docto_ingreso_det ON (public_docto_ingreso.cod_tipd = public_docto_ingreso_det.cod_tipd) AND (public_docto_ingreso.cod_docto = public_docto_ingreso_det.cod_docto) AND (public_docto_ingreso.rut_prov = public_docto_ingreso_det.rut_prov)) ON public_proveedores.rut_prov = public_docto_ingreso.rut_prov) ON public_tipo_docto.cod_tdocto = public_docto_ingreso.cod_tipd) ON public_retencion.cod_ret = public_docto_ingreso.cod_ret) INNER JOIN public_producto ON public_docto_ingreso_det.cod_prod = public_producto.cod_prod GROUP BY Month([fec_docto]), Year([fec_docto]), public_docto_ingreso.cod_ret, public_docto_ingreso_det.cod_tipd, public_docto_ingreso.rut_prov, public_docto_ingreso_det.cod_docto, public_docto_ingreso.docto_asoc, public_proveedores.nom_prov, public_retencion.val_ret, public_producto.cod_3500, public_tipo_docto.cod_tdocto, public_producto.des_prod, public_producto.cod_prod HAVING (((Month([fec_docto]))=7) AND ((Year([fec_docto]))=2011) AND ((public_docto_ingreso.cod_ret)=2 Or (public_docto_ingreso.cod_ret)=3) AND ((public_docto_ingreso_det.cod_tipd)=1)) ORDER BY public_docto_ingreso.rut_prov; al pasarla a postgres y realizar unb par de cambias me da un error... por ejemplo cambie el la sentencia month solo por to_char(docto_ingreso.fec_docto,'DD/MM/YYYY') as fecha_2, se que no es lo mismo pero a mi me sirve de esta forma. El tema es que al correr la consulta desde postgres me da un error de "near" en la sentencia GROUP, se que el error debe estar por aqui, pero no lo puedo encontrar esta es la consulta tal como la modifique:
SELECT to_char(docto_ingreso.fec_docto,'DD/MM/YYYY') as fecha_2, docto_ingreso.cod_ret, docto_ingreso_det.cod_tipd, docto_ingreso.rut_prov, docto_ingreso_det.cod_docto, docto_ingreso.docto_asoc, proveedores.nom_prov, retencion.val_ret, Sum(docto_ingreso_det.can_docto_det) AS SumaDecan_docto_det, Sum(docto_ingreso_det.val_docto_det) AS SumaDeval_docto_det, producto.cod_3500, tipo_docto.cod_tdocto, producto.des_prod, producto.cod_prod FROM retencion INNER JOIN tipo_docto INNER JOIN proveedores INNER JOIN docto_ingreso INNER JOIN docto_ingreso_det ON docto_ingreso.cod_tipd = docto_ingreso_det.cod_tipd AND docto_ingreso.cod_docto = docto_ingreso_det.cod_docto AND docto_ingreso.rut_prov = docto_ingreso_det.rut_prov ON proveedores.rut_prov = docto_ingreso.rut_prov ON tipo_docto.cod_tdocto = docto_ingreso.cod_tipd ON retencion.cod_ret = docto_ingreso.cod_ret INNER JOIN producto ON docto_ingreso_det.cod_prod = producto.cod_prod GROUP to_char(docto_ingreso.fec_docto,'DD/MM/YYYY') as fecha_2, docto_ingreso.cod_ret, docto_ingreso_det.cod_tipd, docto_ingreso.rut_prov, docto_ingreso_det.cod_docto, docto_ingreso.docto_asoc, proveedores.nom_prov, retencion.val_ret, producto.cod_3500, tipo_docto.cod_tdocto, producto.des_prod, producto.cod_prod HAVING extract(month from docto_ingreso.fec_docto) = 7 and extract(year from docto_ingreso.fec_docto) = 2011 and docto_ingreso.cod_ret = 3 and docto_ingreso.cod_tipd = 1 ORDER BY docto_ingreso.rut_prov; se agradece de antemano. Mario.