
Problema unir dos tablas Firebird
#1
Escrito 29 noviembre 2012 - 01:10
TEMPRESUMIDOXDIA_GASOIL y TEMPRESUMIDOXDIA_GASOLINA
DESP_FECHA <--- Por este campo quiero agruparla
TOTAL
CANTIDAD
¿Es posible?.
Saludos.
#2
Escrito 29 noviembre 2012 - 01:38
Pues tengo dos tablas con exactamente los mismo campos, pero quisiera agruparlas por un campo en común:
TEMPRESUMIDOXDIA_GASOIL y TEMPRESUMIDOXDIA_GASOLINA
DESP_FECHA <--- Por este campo quiero agruparla
TOTAL
CANTIDAD
¿Es posible?.
Saludos.
Hola bro, algo así ???
Select
DESP_FECHA,
TOTAL,
CANTIDAD
from tutabla1
where condicion = loquequieras
group by 1
union all
Select
DESP_FECHA,
TOTAL,
CANTIDAD
from tutabla2
where condicion = loquequieras
group by 1
Saludos
#3
Escrito 29 noviembre 2012 - 01:58
Invalid token. Dynamic SQL Error. SQL error code = -104. Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).
#4
Escrito 29 noviembre 2012 - 02:10
Gracias Bro, pero:
delphi
Invalid token. Dynamic SQL Error. SQL error code = -104. Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).
Si, ya lo he visto, acabo de ejecutar una consulta similar y es el mismo error, como quieres que se muestre la info ?
Saludos
#5
Escrito 29 noviembre 2012 - 02:19
DESP_FECHA, TOTAL, CANTIDADGASOIL, CANTIDADGASOLINA
01/11/2012 100 2,900 260
02/11/2012 93 1,113 122
...
Saludos.
#6
Escrito 29 noviembre 2012 - 02:25
Algo así?
SELECT A.DESP_FECHA, SUM(A.TOTAL) TOTAL, SUM(A.CANTIDADGASOIL) CANTIDADGASOIL, SUM(A.CANTIDADGASOLINA) CANTIDADGASOLINA
FROM (
SELECT
DESP_FECHA,
TOTAL,
CANTIDAD CANTIDADGASOIL,
0 CANTIDADGASOLINA
FROM TEMPRESUMIDOXDIA_GASOIL
UNION ALL
SELECT
DESP_FECHA,
TOTAL,
0 CANTIDADGASOIL,
CANTIDAD CANTIDADGASOLINA
FROM TEMPRESUMIDOXDIA_GASOLINA
) A
GROUP BY A.DESP_FECHA
Lo escribí sin probarlo pero esta cerca de lo que quieres

#7
Escrito 29 noviembre 2012 - 02:27
Pues:
DESP_FECHA, TOTAL, CANTIDADGASOIL, CANTIDADGASOLINA
01/11/2012 100 2,900 260
02/11/2012 93 1,113 122
...
Saludos.
Para que funcione, los campos TOTAL, CANTIDADGASOIL y CANTIDADGASOLINA deberian ser funciones......
SELECT
DESP_FECHA,
sum( campo1 ) as TOTAL,
sum( campo2 ) as CANTIDADGASOIL,
sum( campo3 ) as CANTIDADGASOLINA
FROM tutabla1
WHERE condicion = loquequieras
GROUP BY 1
UNION ALL
SELECT
DESP_FECHA,
sum( campo1 ) as TOTAL,
sum( campo2 ) as CANTIDADGASOIL,
sum( campo3 ) as CANTIDADGASOLINA
FROM tutabla2
WHERE condicion = loquequieras
GROUP BY 1
Saludos
#8
Escrito 29 noviembre 2012 - 02:30

¡Saludos!
#9
Escrito 01 diciembre 2012 - 04:30
0 CANTIDADGASOLINA
....
0 CANTIDADGASOIL
¿Podrías explicarme esta situación?
Saludos.
#10
Escrito 03 diciembre 2012 - 06:09
Primeramente este "tipo de sentencia" es valido para cualquier RDBMS.
En lo personal lo conozco como Alias simplemente, el uso habitual del alias es tanto para tablas como para campos y mas sobre todo cuando se utiliza algún tipo de función (SUM, AVG, MIN, MAX).
En el caso particular de tu sentencia, era necesario tener valores (campos) que no pertenecen a las tablas para poder realizar la sumatoria, ma' me eplico, en la tabla TEMPRESUMIDOXDIA_GASOIL no tenemos el campo de referencia de la gasolina y en la tabla TEMPRESUMIDOXDIA_GASOLINA no tenemos el campo de referencia del gasoil.