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

Uma resposta para “Consulta no Firebird, utilizando o Union.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s