Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Error en sql cuando cambie de version (https://www.clubdelphi.com/foros/showthread.php?t=20939)

IVAND 01-05-2005 01:36:46

Error en sql cuando cambie de version
 
Hola a todos , he tenido mas de un año programando el delphi y firebird 1.0 ahora me decidi a cambiara a firebird 1.5.2 pero en algunos querys que funcionaban perfecto (o aparentemente perfectos ) ahora no me funcionan indicando que hay error en las clausular del GROUP BY

aqui les pongo un ejemplo

Código PHP:

Select key_cab_fac,c.key_caja,c1.cod_cliente,c1.nombre,
(
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 ,
(
Select z(sum(t2.total)) from form_pago t2
Where t2
.key_cab_fac=t1.key_cab_fac and t2.cod_pago=100) as EFEC ,
(
Select z(sum(t2.total)) from form_pago t2
Where t2
.key_cab_fac=t1.key_cab_fac and t2.cod_pago=109) as FACR ,
(
Select z(sum(t2.total)) from form_pago t2
Where t2
.key_cab_fac=t1.key_cab_fac and t2.cod_pago=105) as IVA  ,
(
Select z(sum(t2.total)) from form_pago t2
Where t2
.key_cab_fac=t1.key_cab_fac and t2.cod_pago=106) as DCTOV,
(
Select z(sum(t2.total)) from form_pago t2
Where t2
.key_cab_fac=t1.key_cab_fac and t2.cod_pago=107) as RFLET,
(
Select z(sum(t2.total)) from form_pago t2
Where t2
.key_cab_fac=t1.key_cab_fac and t2.cod_pago=108) as RTARC,
(
Select z(sum(t2.total)) from form_pago t2
Where t2
.key_cab_fac=t1.key_cab_fac and t2.cod_pago=104) as RETFU,
(
Select z(sum(t2.total)) from form_pago t2
Where t2
.key_cab_fac=t1.key_cab_fac and t2.cod_pago=694) as RIVA ,
(
Select z(sum(t2.total)) from form_pago t2
Where t2
.key_cab_fac=t1.key_cab_fac and t2.cod_pago=102) as TCRED,
(
Select z(sum(t2.total)) from form_pago t2
Where t2
.key_cab_fac=t1.key_cab_fac and t2.cod_pago=533) as VEN_A
From form_pago t1
,cab_fac c
LEFT JOIN clientes C1 ON c
.key_cliente=c1.key_cliente
Where t1
.key_cab_fac=c.key_cab_fac and c.estado_fac="T"
and  Extractdate(c.fec_facturaBetween :Fdesde and :Fhasta
group by key_cab_fac
,c.key_caja,c1.cod_cliente,c1.nombre 

Ese query lo que hace es crear las filas en columnas repito funcionaba en f1 ahora en f1.5.2 no funciona alguien me puede dar la mano ... Gracias de antemano

lbuelvas 01-05-2005 19:30:34

Hola foro,

Bueno a mi paso, que cuando cambie de Interbase a Firebird 1.0.3 las sentencias select que hacian uso de join mostraban error de ambiguedad.

Debe en firebird especificarse a que tabla se hace referencia cuando existen campos con igual nombre en diferentes tablas.

Prueba cambiar

and Extractdate(c.fec_factura) Between :Fdesde and :Fhasta
group by key_cab_fac,c.key_caja,c1.cod_cliente,c1.nombre

por:

and Extractdate(c.fec_factura) Between :Fdesde and :Fhasta
group by xxxxxxx.key_cab_fac,c.key_caja,c1.cod_cliente,c1.nombre

coloque xxxxxxx porque francamente no se a cual tabla haces referencia.

Una pregunta: esa consulta que pretende mostrar ?

Un feliz dia.

Luis F. Buelvas T.

lbuelvas 01-05-2005 19:32:00

Hola foro,

creo que tambien debes cambiar:

Select key_cab_fac,c.key_caja,c1.cod_cliente,c1.nombre,

por

Select xxxxxx.key_cab_fac,c.key_caja,c1.cod_cliente,c1.nombre,

IVAND 02-05-2005 23:57:43

Gracias por contestar

Te comento que lo que dices lo acabo de hacer pero igual me da el mismo error ..

Seguire probando :-(

Nota : Lo que pretende es que un datos asi :
Código PHP:

Cab_fac     dato    valor 
-----------------------
1            C10              5
1            C12              7  
1            C13          20.25
1            C14          40 

Quede asi
Código PHP:

Cab__fac    C10      c12         c13           c14
---------------------------------------------
   
1             5          7         20.25            40 


lbuelvas 03-05-2005 01:44:34

Este tipo de consultas cross-tab, personalmente las elaboro con un procedimiento almacenado, se vera mas legible y ademas puedes hacer consultas sobre el resultado de dicho procedimiento almacenado.


La franja horaria es GMT +2. Ahora son las 03:45:39.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi