Publicado por: Gustavo Henrique | Abril 17, 2008

Consulta no Firebird, utilizando o Union.

Se você já precisou unir duas consultas no Firebird, porém uma não tinha a mesma quantidade de campos da outra, segue um exemplo abaixo utilizo o Union para unir as consultas e o Cast, para gerar campos nulos para que a consulta ocorra.

SELECT I.CODIGOIMAGEM, I.CODIGOALBUM, A.ALBUM, I.SEQUENCIAALBUM, C.CODIGOCATEGORIA, C.CATEGORIA, C.CODIGOTIPO, T.TIPO, C.PROPRIEDADEDIGITAL,
C.PROPRIEDADENEGATIVO, L.CODIGOLOGON, L.LOGON, I.CODIGOLOCAL, LO.LOCAL, LO.CODIGOOBJETO, O.OBJETO,  LO.CODIGOSP, S.SP, LO.KM, I.CODIGOEMPRESA,
E.EMPRESA, I.CODIGOFOTOGRAFO, F.FOTOGRAFO, F.CODIGOESTUDIO, ES.ESTUDIO, I.ASSUNTO, I.DATA, I.DATAREGISTRO, I.HORAREGISTRO
FROM IMAGEM I, ALBUM A, CATEGORIA C, TIPO T, LOGON L, LOCAL LO, OBJETO O, SP S, EMPRESA E, FOTOGRAFO F, ESTUDIO ES
WHERE I.CODIGOALBUM = A.CODIGOALBUM AND I.CODIGOCATEGORIA = C.CODIGOCATEGORIA AND C.CODIGOTIPO = T.CODIGOTIPO AND I.CODIGOLOGON = L.CODIGOLOGON AND
I.CODIGOLOCAL = LO.CODIGOLOCAL AND LO.CODIGOOBJETO = O.CODIGOOBJETO  AND LO.CODIGOSP = S.CODIGOSP AND I.CODIGOEMPRESA = E.CODIGOEMPRESA AND
F.CODIGOESTUDIO = ES.CODIGOESTUDIO AND I.CODIGOFOTOGRAFO = F.CODIGOFOTOGRAFO AND C.CODIGOCATEGORIA IS NOT NULL
UNION
SELECT I.CODIGOIMAGEM, I.CODIGOALBUM, A.ALBUM, I.SEQUENCIAALBUM, COALESCE(I.CODIGOCATEGORIA,NULL), CAST(”’EM BRANCO”’ AS VARCHAR(20)), COALESCE(0,NULL), CAST(”’EM BRANCO”’ AS VARCHAR(20)), CAST(” AS VARCHAR(1)),  CAST (” AS VARCHAR(1)), L.CODIGOLOGON, L.LOGON, COALESCE(I.CODIGOLOCAL,NULL), CAST(”’EM BRANCO”’ AS VARCHAR(20)), COALESCE(0, NULL), CAST(”’EM BRANCO”’ AS VARCHAR(50)), COALESCE(0,NULL), CAST (”’EM BRANCO”’ AS VARCHAR(20)), CAST(”’EM BRANCO”’ AS VARCHAR(20)), COALESCE(0,NULL), CAST(”’EM BRANCO”’ AS VARCHAR(50)), COALESCE(0,NULL), CAST(”’EM BRANCO”’ AS VARCHAR(50)), COALESCE(0,NULL),  CAST (”’EM BRANCO”’ AS VARCHAR(50)), CAST(”’EM BRANCO”’ AS VARCHAR(200)),I.DATA, I.DATAREGISTRO, I.HORAREGISTRO
FROM IMAGEM I, LOGON L, ALBUM A
WHERE I.CODIGOLOGON = L.CODIGOLOGON AND I.CODIGOALBUM = A.CODIGOALBUM AND I.CODIGOCATEGORIA IS NULL AND I.CODIGOFOTOGRAFO IS NULL AND I.ASSUNTO IS NULL
ORDER BY 1


Deixe uma resposta

Sua resposta:

Categorias