Ir al contenido


Foto

Problema unir dos tablas Firebird


  • Por favor identifícate para responder
9 respuestas en este tema

#1 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 29 noviembre 2012 - 01:10

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.
  • 0

#2 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

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
  • 0

#3 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 29 noviembre 2012 - 01:58

Gracias Bro, pero:



delphi
  1. Invalid token.
  2. Dynamic SQL Error.
  3. SQL error code = -104.
  4. Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).


  • 0

#4 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 29 noviembre 2012 - 02:10

Gracias Bro, pero:



delphi
  1. Invalid token.
  2. Dynamic SQL Error.
  3. SQL error code = -104.
  4. 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
  • 0

#5 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 29 noviembre 2012 - 02:19

Pues:

DESP_FECHA, TOTAL, CANTIDADGASOIL, CANTIDADGASOLINA
01/11/2012      100          2,900                        260
02/11/2012        93          1,113                        122
...

Saludos.
  • 0

#6 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 29 noviembre 2012 - 02:25

Saludos!

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  ;)
  • 0

#7 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

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
  • 0

#8 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 29 noviembre 2012 - 02:30

¡Excelente Rolphy! Eso era exactamente lo que necesitaba (y)

¡Saludos!
  • 0

#9 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 01 diciembre 2012 - 04:30

Amigo Rolphy, ahora que me fijo bien en la sintaxis de la consulta, hay algo que veo por primera vez y como no sé cómo se le llama, no encuentro documentación alguna, y es esta parte:

 0 CANTIDADGASOLINA

....

0 CANTIDADGASOIL


¿Podrías explicarme esta situación?

Saludos.
  • 0

#10 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 03 diciembre 2012 - 06:09

Saludos.

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.
  • 0




IP.Board spam blocked by CleanTalk.