PDA

Ver la Versión Completa : Clausula UNION


TJose
06-05-2003, 22:34:30
necesito crear un consulta utilizando la clausula UNION y me da el
siguiente error al ejecutarla:
SQL error code = -104.
Invalid command.
Data type unknown.

los select por separado funcionan bien. Éstos se muestran a
continuacion:

Select 1

select areas.area,
(empleados.apellido || ', ' || empleados.nombres) as Empleado,
movimientos.numero,
(-1) * movimientos.monto as Monto,
movimientos.fecha
from anticipos
right outer join movimientos on (anticipos.numero =
movimientos.numero)
left outer join empleados on (anticipos.idempleado =
empleados.idempleado)
left outer join areas on (anticipos.idarea = areas.idarea)
where (anticipos.anulado = 0)

Select 2

select areas.area,
' Saldo Sistema Anterior' as Empleado,
movimientos.numero,
(- 1)*movimientos.monto as Monto,
movimientos.fecha
from movimientos
left outer join areas on (movimientos.idarea = areas.idarea)
where (movimientos.numero = 0)

probe con hacer un cast a empleados, esto es:
cast(' Saldo Sistema Anterior' as varchar(50)) as Empleado
tambien probe con varchar(100) que es la suma de apellido y nombre y
nada, siempre me muestra el mismo error.
Ademas intente creando dos vistas y luego haciendo un

select * from vw1
union
select * fom vw2
pero el error sigue

Saludos
TJose

kinobi
06-05-2003, 22:47:02
Hola,

Posteado originalmente por TJose
tambien probe con varchar(100) que es la suma de apellido y nombre

Creo recordar, no estoy completamente seguro, que en el caso de tipos VARCHAR, deben ajustarse las columnas de ambas SELECT's al mayor de ellas. En tu caso probablemente sea la suma de las columnas Apellido y Nombre más la longitud de la cadena ', ' (2) que introduces entre ellas, es decir, 100 + 2 = 102.

Saludos.

TJose
07-05-2003, 14:30:42
Gracias kinobi, voy a probar lo que me dices.
Saludos
TJose

TJose
15-05-2003, 20:59:56
Posteado originalmente por kinobi
Hola,



Creo recordar, no estoy completamente seguro, que en el caso de tipos VARCHAR, deben ajustarse las columnas de ambas SELECT's al mayor de ellas. En tu caso probablemente sea la suma de las columnas Apellido y Nombre más la longitud de la cadena ', ' (2) que introduces entre ellas, es decir, 100 + 2 = 102.


Efectivamente fue asi como dijiste kinobi, el cast lo hice con varchar(102) y funciono todo ok.
Saludos
TJOSE