Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

[SOLUCIONADO] consultas con union

Estas en el tema de consultas con union en el foro de PostgreSQL en Foros del Web. buenas amigos.. tengo una pequeño problemita con un la union de ciertas consultas en postgresql... esta es la consulta que tengo actual : @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); ...
  #1 (permalink)  
Antiguo 20/08/2015, 11:50
 
Fecha de Ingreso: agosto-2015
Mensajes: 35
Antigüedad: 9 años, 3 meses
Puntos: 0
consultas con union

buenas amigos..

tengo una pequeño problemita con un la union de ciertas consultas en postgresql...

esta es la consulta que tengo actual :
Código SQL:
Ver original
  1. SELECT fecha,SUM(sum1)AS valor_total,SUM(valortotal_uso)AS valor,SUM(estado)AS valor_estado
  2.               FROM
  3.               ((SELECT to_date(clearingdate,'yyyymmdd')AS fecha,NULL AS sum1,NULL AS valortotal_uso,SUM(amountused)AS estado FROM e_transacciones GROUP BY fecha)
  4.               UNION ALL
  5.               (SELECT to_date(fecha_de_transaccion,'YYYYMMDDHH24MISS')AS fecha,NULL AS sum1,SUM(monto_de_uso)AS valortotal_uso,NULL AS estado FROM uso_tarjetas GROUP BY fecha)
  6.               UNION ALL
  7.               (SELECT to_date(fecha_de_recaudo,'DD-MM-YYYY')AS fecha ,SUM(valor)AS sum1, NULL AS valortotal_uso,NULL AS estado  FROM troncal_post GROUP BY fecha)
  8.               UNION ALL
  9.               (SELECT to_date(fecha_de_reclamo,'DD-MM-YYYY') AS fecha,SUM(valor)AS sum1,NULL AS valortotal_uso,NULL AS estado FROM zonal GROUP BY fecha))AS set1 GROUP BY fecha;

estoy haciendo una consulta a una sub consulta pero el erro que me arroja es el siguiente:

ERROR: los tipos text y bigint no son coincidentes en UNION

como podria solucionarlo porfavor
  #2 (permalink)  
Antiguo 20/08/2015, 12:35
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: consultas con union

Para que la sentencia UNION o UNION ALL sean funcionales, se exige 2 condiciones:
1. Que tenga el mismo numero de campos las consultas que se requiere unir.
2. Que cada campo en el orden establecido, sea del mismo tipo de dato.

Prueba lo siguiente:
Código SQL:
Ver original
  1. SELECT fecha,SUM(sum1)AS valor_total,SUM(valortotal_uso)AS valor,SUM(estado)AS valor_estado
  2.               FROM
  3.               ((SELECT to_date(clearingdate,'yyyymmdd')AS fecha,NULL::BIGINT AS sum1,NULL::BIGINT AS valortotal_uso,SUM(amountused)AS estado FROM e_transacciones GROUP BY fecha)
  4.               UNION ALL
  5.               (SELECT to_date(fecha_de_transaccion,'YYYYMMDDHH24MISS')AS fecha,NULL::BIGINT AS sum1,SUM(monto_de_uso)AS valortotal_uso,NULL::BIGINT AS estado FROM uso_tarjetas GROUP BY fecha)
  6.               UNION ALL
  7.               (SELECT to_date(fecha_de_recaudo,'DD-MM-YYYY')AS fecha ,SUM(valor)AS sum1, NULL::BIGINT AS valortotal_uso,NULL::BIGINT AS estado  FROM troncal_post GROUP BY fecha)
  8.               UNION ALL
  9.               (SELECT to_date(fecha_de_reclamo,'DD-MM-YYYY') AS fecha,SUM(valor)AS sum1,NULL::BIGINT AS valortotal_uso,NULL::BIGINT AS estado FROM zonal GROUP BY fecha))AS set1 GROUP BY fecha;

Lo que hice, fue hacerle un casteo explicito a los null para que sean tratados como bigint y no como text.

Nos cuentas como te va
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 24/08/2015, 11:13
 
Fecha de Ingreso: agosto-2015
Mensajes: 35
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: consultas con union

Gracias Me Sirvio Muchisimo... La Consulta Corre Correctamente gracias

Etiquetas: union, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:16.