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
