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)
-   -   Clausula UNION (https://www.clubdelphi.com/foros/showthread.php?t=149)

TJose 06-05-2003 22:34:30

Clausula UNION
 
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

Re: Clausula UNION
 
Hola,

Cita:

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

Cita:

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


La franja horaria es GMT +2. Ahora son las 19:29:30.

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