PDA

Ver la Versión Completa : Hacer de Filas columnas (Perdido)


IVAND
11-09-2007, 21:00:39
Hola a todos

Hace un buen tiempo un amigo del foro me dio una gran idea que me sirvio hasta hoy que me surge otra gran duda , espero puedan ayudarme con su basta experiencia

Primero trabajo con delphi 6 e firebird 1.5.4

Tengo tres tablas

- Cab_fac (maestro de facturas grabadas)
- form_pago (formas como me pueden pagar una factura , efectivo, cheques etc)

Hago el siguiente select tratando de convertir las filas en columnas pero agrupadas por mes y ano y me da un error


select cast(datetostr(c.fec_factura,"%m%d") as char(6) año,
(Select z(sum(t2.total)) from form_Pago t2
where t2.key_cab_fac=t1.key_cab_fac and t2.cod_pago=101) as cheq
from cab_fac c,form_pago t1
where c.key_cab_fac=t1.key_cab_fac
and extractdate(c.fec_factura)=:fecha
Group by t1.key_cab_fac,datetostr(c.fec_factura,"%m%d")


El problema es que me funciona perfecto si hay que agrupar por key_cab_fac, pero mi interes es que me agrupe por dia-año y no por key_cab_fac es mas
este campo no me interesa en esta consulta

Gracias por su interes una vez mas

Carmelo Cash
14-09-2007, 14:19:35
Creo que una solución práctica, sería agregar dos campos (mes y año ) a la tabla, eso te facilitaría este tipo de consultas y la respuesta sería más velóz.

Otra opción es crear una vista y agrupar desde la vista, pero debrás tener en cuenta el rendimiento.

Suerte

IVAND
14-09-2007, 19:25:57
Gracias Carmelo , pero por ahi no va el problema , el problema esta es que no necesito agupar por key_cab_fac , pero es la unica manera que el query me funcione bien , tendra que haber una mejor manera de hacer el query