Bom dia Pessoal! 
	Estou trabalhando em um relátorio do Crystal e estou precisando incluir um campo de uma tabela que não está presente no relatorio.
 
	Pelo que andei lendo, o UNION requer que exista a mesma quantidade e tipo dos campos, mas mesmo assim me gera um erro informando que as colunas devem ser do mesmo tipo.
 
	Segue abaixo a query. A tabela que estou adicionando é a CONHECIMENTO_NOTAFISCAL 
 
	 
 
	SELECT       retorno.*, 
	      grupo.nome AS nomegrupo, 
	      empresa.nome AS nomeempresa, 
	      filial.apelido AS apelidofilial, 
	      unidade.descricao AS descricaounidade, 
	      COALESCE(tipodocumento.identificacaolivrofiscal,'') AS tipodoc, 
	      COALESCE(cad_remetente.razaosocial,'') AS remetenterazao, 
	      COALESCE(cad_destinatario.razaosocial,'') AS destinatariorazao, 
	      COALESCE(cad_pagadorfrete.razaosocial,'') AS pagadorfreterazao, 
	                   (COALESCE(cad_pagadorfrete.razaosocial,'')||retorno.cnpjcpfcodigopagadorfrete)::varchar AS grupopagador, 
	      fatura_composicao.filial AS faturafilial, 
	      fatura_composicao.unidade AS faturaunidade, 
	      fatura.numero AS numerofatura, 
	      (fatura.numero::TEXT||'/'||fatura.filial::TEXT||'/'||fatura.unidade::TEXT)::VARCHAR AS numerofaturaformatado, 
	      fatura.dtprevisaopagamento, 
	      fatura_pagamento.dtpagamento, 
	      fatura.valorimpressao, 
	                   fatura.valorsaldoreceber, 
	      fatura.observacao, 
	                   ( (CASE WHEN retorno.pagadorfrete = 1 THEN 'Remetente' 
	                              WHEN retorno.pagadorfrete = 2 THEN 'Destinatário' 
	                              WHEN retorno.pagadorfrete = 3 THEN 'Consignatário' 
	                              WHEN retorno.pagadorfrete = 4 THEN 'Redespacho' 
	                      END) )::VARCHAR AS pagadorfretetipo
 
	FROM ( 
	SELECT  
	      conhecimento.grupo, 
	      conhecimento.empresa, 
	      conhecimento.filial, 
	      conhecimento.unidade, 
	      '' AS cnpjcpfcodigoemissor, 
	      conhecimento.diferenciadornumero, 
	      conhecimento.serie, 
	      conhecimento.numero, 
	      conhecimento.dtemissao::date AS dtemissao, 
	      conhecimento.tipodocumento, 
	      conhecimento.remetente, 
	      conhecimento.destinatario, 
	      conhecimento.cnpjcpfcodigopagadorfrete, 
	                                (SUBSTR(conhecimento.cnpjcpfcodigopagadorfrete,1,8))::varchar AS cnpjpagadorradical, 
	      conhecimento.pagadorfrete, 
	      conhecimento.valortotalprestacao, 
	      conhecimento.numero::VARCHAR AS numerodocumentomostrado 
	FROM conhecimento
 
	JOIN fatura_composicao ON fatura_composicao.tipodocumentoorigem = conhecimento.tipodocumento 
	AND fatura_composicao.grupodocumentoorigem = conhecimento.grupo 
	AND fatura_composicao.empresadocumentoorigem = conhecimento.empresa 
	AND fatura_composicao.filialdocumentoorigem = conhecimento.filial 
	AND fatura_composicao.unidadedocumentoorigem = conhecimento.unidade 
	AND fatura_composicao.diferenciadornumerodocumentoorigem = conhecimento.diferenciadornumero 
	AND fatura_composicao.seriedocumentoorigem = conhecimento.serie 
	AND fatura_composicao.numerosequenciadocumentoorigem = conhecimento.numero
 
	JOIN fatura ON fatura.grupo = fatura_composicao.grupo 
	AND fatura.empresa = fatura_composicao.empresa 
	AND fatura.filial = fatura_composicao.filial 
	AND fatura.unidade = fatura_composicao.unidade 
	AND fatura.sequencia = fatura_composicao.sequencia
 
	LEFT OUTER JOIN fatura_pagamento ON fatura_pagamento.grupo = fatura_composicao.grupo 
	AND fatura_pagamento.empresa = fatura_composicao.empresa 
	AND fatura_pagamento.filial = fatura_composicao.filial 
	AND fatura_pagamento.unidade = fatura_composicao.unidade 
	AND fatura_pagamento.sequencia = fatura_composicao.sequencia 
	AND fatura_pagamento.sequenciapagamento =  (SELECT fatura_contabilizacao.sequenciafaturapagamento FROM fatura_contabilizacao  
	                                                                                WHERE fatura_contabilizacao.grupo = fatura_composicao.grupo 
	                                                                                AND fatura_contabilizacao.empresa = fatura_composicao.empresa 
	                                                                                AND fatura_contabilizacao.filial = fatura_composicao.filial 
	                                                                                AND fatura_contabilizacao.unidade = fatura_composicao.unidade 
	                                                                                AND fatura_contabilizacao.sequencia = fatura_composicao.sequencia 
	                                                                                AND fatura_contabilizacao.sequenciafaturacomposicao = fatura_composicao.sequenciacomposicao  
	order by fatura_contabilizacao.sequenciacontabilizacao desc    
	                                                                                LIMIT 1)
 
	WHERE conhecimento.grupo = {?Grupo} 
	AND conhecimento.empresa = {?Empresa} 
	AND ({?Filial} = 0 OR conhecimento.filial = {?Filial}) 
	AND ({?Unidade} = 0 OR conhecimento.unidade = {?Unidade}) 
	AND (CASE WHEN '{?Status}' = 'Emitidos - Documentos' THEN  
	(conhecimento.dtemissao::date BETWEEN {?DataInicial} AND {?DataFinal}) 
	                   WHEN '{?Status}' = 'Faturados Pagos' THEN  
	(fatura_pagamento.dtpagamento::date BETWEEN {?DataInicial} AND {?DataFinal}) 
	                   WHEN '{?Status}' = 'Abertos Não Faturados' THEN 
	(fatura.dtvencimento::date BETWEEN {?DataInicial} AND {?DataFinal}) 
	                   ELSE 
	(fatura.dtprevisaopagamento::date BETWEEN {?DataInicial} AND {?DataFinal}) 
	END) 
	AND (CASE WHEN '{?Radical}' = 'Sim' AND '{?CnpjCpfCodigo}' <> ''  
	                              THEN SUBSTR(conhecimento.cnpjcpfcodigopagadorfrete,1,8) = SUBSTR('{?CnpjCpfCodigo}',1,8) 
	                   ELSE  
	                               ('{?CnpjCpfCodigo}' = '' OR conhecimento.cnpjcpfcodigopagadorfrete = '{?CnpjCpfCodigo}') 
	                   END) 
	AND conhecimento.dtcancelamento IS NULL 
	AND conhecimento.numero < 1000000 
	AND conhecimento.tipo in(1,4) 
	AND (conhecimento.emissaoeletronica = 2 OR (conhecimento.emissaoeletronica = 1 AND conhecimento.situacaocte = 3))
 
	UNION ALL
 
	SELECT  
	      recibo.grupo, 
	      recibo.empresa, 
	      recibo.filial, 
	      recibo.unidade, 
	      '' AS cnpjcpfcodigoemissor, 
	      recibo.diferenciadornumero, 
	      recibo.serie, 
	      recibo.numero, 
	      recibo.dtemissao::date AS dtemissao, 
	      recibo.tipodocumento, 
	      recibo.remetente, 
	      recibo.destinatario, 
	      recibo.cnpjcpfcodigopagadorfrete, 
	                                (SUBSTR(recibo.cnpjcpfcodigopagadorfrete,1,8))::varchar AS cnpjpagadorradical, 
	      recibo.pagadorfrete, 
	      recibo.valortotalprestacao, 
	      recibo.numero::VARCHAR AS numerodocumentomostrado 
	FROM recibo
 
	JOIN fatura_composicao ON fatura_composicao.tipodocumentoorigem = recibo.tipodocumento 
	AND fatura_composicao.grupodocumentoorigem = recibo.grupo 
	AND fatura_composicao.empresadocumentoorigem = recibo.empresa 
	AND fatura_composicao.filialdocumentoorigem = recibo.filial 
	AND fatura_composicao.unidadedocumentoorigem = recibo.unidade 
	AND fatura_composicao.diferenciadornumerodocumentoorigem = recibo.diferenciadornumero 
	AND fatura_composicao.seriedocumentoorigem = recibo.serie 
	AND fatura_composicao.numerosequenciadocumentoorigem = recibo.numero
 
	JOIN fatura ON fatura.grupo = fatura_composicao.grupo 
	AND fatura.empresa = fatura_composicao.empresa 
	AND fatura.filial = fatura_composicao.filial 
	AND fatura.unidade = fatura_composicao.unidade 
	AND fatura.sequencia = fatura_composicao.sequencia
 
	LEFT OUTER JOIN fatura_pagamento ON fatura_pagamento.grupo = fatura_composicao.grupo 
	AND fatura_pagamento.empresa = fatura_composicao.empresa 
	AND fatura_pagamento.filial = fatura_composicao.filial 
	AND fatura_pagamento.unidade = fatura_composicao.unidade 
	AND fatura_pagamento.sequencia = fatura_composicao.sequencia 
	AND fatura_pagamento.sequenciapagamento =  (SELECT fatura_contabilizacao.sequenciafaturapagamento FROM fatura_contabilizacao  
	                                                                                WHERE fatura_contabilizacao.grupo = fatura_composicao.grupo 
	                                                                                AND fatura_contabilizacao.empresa = fatura_composicao.empresa 
	                                                                                AND fatura_contabilizacao.filial = fatura_composicao.filial 
	                                                                                AND fatura_contabilizacao.unidade = fatura_composicao.unidade 
	                                                                                AND fatura_contabilizacao.sequencia = fatura_composicao.sequencia 
	                                                                                AND fatura_contabilizacao.sequenciafaturacomposicao = fatura_composicao.sequenciacomposicao  
	order by fatura_contabilizacao.sequenciacontabilizacao desc    
	                                                                                LIMIT 1)
 
	WHERE recibo.grupo = {?Grupo} 
	AND recibo.empresa = {?Empresa} 
	AND ({?Filial} = 0 OR recibo.filial = {?Filial}) 
	AND ({?Unidade} = 0 OR recibo.unidade = {?Unidade}) 
	AND (CASE WHEN '{?Status}' = 'Emitidos - Documentos' THEN  
	(recibo.dtemissao::date BETWEEN {?DataInicial} AND {?DataFinal}) 
	                   WHEN '{?Status}' = 'Faturados Pagos' THEN  
	(fatura_pagamento.dtpagamento::date BETWEEN {?DataInicial} AND {?DataFinal}) 
	                   WHEN '{?Status}' = 'Abertos Não Faturados' THEN 
	(fatura.dtvencimento::date BETWEEN {?DataInicial} AND {?DataFinal}) 
	                   ELSE 
	(fatura.dtprevisaopagamento::date BETWEEN {?DataInicial} AND {?DataFinal}) 
	END)
 
	AND (CASE WHEN '{?Radical}' = 'Sim' AND '{?CnpjCpfCodigo}' <> ''  
	                              THEN SUBSTR(recibo.cnpjcpfcodigopagadorfrete,1,8) = SUBSTR('{?CnpjCpfCodigo}',1,8) 
	                   ELSE 
	                              ('{?CnpjCpfCodigo}' = '' OR recibo.cnpjcpfcodigopagadorfrete = '{?CnpjCpfCodigo}') 
	                   END) 
	AND recibo.dtcancelamento IS NULL 
	AND recibo.numero < 1000000
 
	UNION ALL
 
	SELECT 
	     conhecimento_notafiscal.grupo, 
	     conhecimento_notafiscal.empresa, 
	     conhecimento_notafiscal.filial, 
	     conhecimento_notafiscal.unidade, 
	      '' AS cnpjcpfcodigoemissor, 
	      conhecimento_notafiscal.diferenciadornumero, 
	      conhecimento_notafiscal.serie, 
	      conhecimento_notafiscal.numero, 
	      conhecimento_notafiscal.dtemissao::date AS dtemissao,
 
	conhecimento_notafiscal.dtalt, 
	conhecimento_notafiscal.dtchegada, 
	conhecimento_notafiscal.numero as conhecimento,
 
	conhecimento_notafiscal.cnpjcpfcodigoemissor, 
	                                (SUBSTR(conhecimento_notafiscal.cnpjcpfcodigoemissor,1,8))::varchar AS cnpjemissorradical,
 
	conhecimento_notafiscal.dtinc, 
	conhecimento_notafiscal.modelo, 
	conhecimento_notafiscal.dtentrega, 
	     conhecimento_notafiscal.numeronotafiscal::VARCHAR AS notafiscal
 
	 
	FROM conhecimento_notafiscal
 
	JOIN fatura_composicao ON fatura_composicao.grupodocumentoorigem = conhecimento_notafiscal.grupo 
	AND fatura_composicao.empresadocumentoorigem = conhecimento_notafiscal.empresa 
	AND fatura_composicao.filialdocumentoorigem = conhecimento_notafiscal.filial 
	AND fatura_composicao.unidadedocumentoorigem = conhecimento_notafiscal.unidade 
	AND fatura_composicao.diferenciadornumerodocumentoorigem = conhecimento_notafiscal.diferenciadornumero 
	AND fatura_composicao.seriedocumentoorigem = conhecimento_notafiscal.serie 
	AND fatura_composicao.numerosequenciadocumentoorigem = conhecimento_notafiscal.numero
 
	JOIN fatura ON fatura.grupo = fatura_composicao.grupo 
	AND fatura.empresa = fatura_composicao.empresa 
	AND fatura.filial = fatura_composicao.filial 
	AND fatura.unidade = fatura_composicao.unidade 
	AND fatura.sequencia = fatura_composicao.sequencia
 
	LEFT OUTER JOIN fatura_pagamento ON fatura_pagamento.grupo = fatura_composicao.grupo 
	AND fatura_pagamento.empresa = fatura_composicao.empresa 
	AND fatura_pagamento.filial = fatura_composicao.filial 
	AND fatura_pagamento.unidade = fatura_composicao.unidade 
	AND fatura_pagamento.sequencia = fatura_composicao.sequencia 
	AND fatura_pagamento.sequenciapagamento =  (SELECT fatura_contabilizacao.sequenciafaturapagamento FROM fatura_contabilizacao  
	                                                                                WHERE fatura_contabilizacao.grupo = fatura_composicao.grupo 
	                                                                                AND fatura_contabilizacao.empresa = fatura_composicao.empresa 
	                                                                                AND fatura_contabilizacao.filial = fatura_composicao.filial 
	                                                                                AND fatura_contabilizacao.unidade = fatura_composicao.unidade 
	                                                                                AND fatura_contabilizacao.sequencia = fatura_composicao.sequencia 
	                                                                                AND fatura_contabilizacao.sequenciafaturacomposicao = fatura_composicao.sequenciacomposicao  
	order by fatura_contabilizacao.sequenciacontabilizacao desc    
	                                                                                LIMIT 1)
 
	WHERE conhecimento_notafiscal.grupo = {?Grupo} 
	AND conhecimento_notafiscal.empresa = {?Empresa} 
	AND ({?Filial} = 0 OR conhecimento_notafiscal.filial = {?Filial}) 
	AND ({?Unidade} = 0 OR conhecimento_notafiscal.unidade = {?Unidade}) 
	AND (CASE WHEN '{?Status}' = 'Emitidos - Documentos' THEN  
	(conhecimento_notafiscal.dtemissao::date BETWEEN {?DataInicial} AND {?DataFinal}) 
	                   WHEN '{?Status}' = 'Faturados Pagos' THEN  
	(fatura_pagamento.dtpagamento::date BETWEEN {?DataInicial} AND {?DataFinal}) 
	                   WHEN '{?Status}' = 'Abertos Não Faturados' THEN 
	(fatura.dtvencimento::date BETWEEN {?DataInicial} AND {?DataFinal}) 
	                   ELSE 
	(fatura.dtprevisaopagamento::date BETWEEN {?DataInicial} AND {?DataFinal}) 
	END)
 
	AND (CASE WHEN '{?Radical}' = 'Sim' AND '{?CnpjCpfCodigo}' <> ''  
	                              THEN SUBSTR(conhecimento_notafiscal.cnpjcpfcodigoemissor,1,8) = SUBSTR('{?CnpjCpfCodigo}',1,8) 
	                   ELSE 
	                              ('{?CnpjCpfCodigo}' = '' OR conhecimento_notafiscal.cnpjcpfcodigoemissor = '{?CnpjCpfCodigo}') 
	                   END) 
	AND Conhecimento_notafiscal.dtchegada IS NOT NULL 
	AND conhecimento_notafiscal.numero < 1000000
 
	UNION ALL
 
	SELECT  
	      notafiscalservico.grupo, 
	      notafiscalservico.empresa, 
	      notafiscalservico.filial, 
	      notafiscalservico.unidade, 
	      ''::VARCHAR AS cnpjcpfcodigoemissor, 
	      notafiscalservico.diferenciadornumero, 
	      notafiscalservico.serie, 
	      notafiscalservico.numero, 
	      notafiscalservico.dtemissao::date AS dtemissao, 
	      notafiscalservico.tipodocumento,     
	      notafiscalservico_calculofrete.remetente, 
	      notafiscalservico_calculofrete.destinatario, 
	      notafiscalservico.cnpjcpfcodigo AS cnpjcpfcodigopagadorfrete, 
	                                (SUBSTR(notafiscalservico.cnpjcpfcodigo,1,8))::varchar AS cnpjpagadorradical, 
	                                (CASE WHEN notafiscalservico.cnpjcpfcodigo = notafiscalservico_calculofrete.remetente THEN 1 
	                                           WHEN notafiscalservico.cnpjcpfcodigo = notafiscalservico_calculofrete.destinatario THEN 2 
	                                           WHEN notafiscalservico.cnpjcpfcodigo = notafiscalservico_calculofrete.consignatario THEN 3 
	                                           ELSE 1 
	                                END) AS pagadorfrete, 
	      notafiscalservico.valortotalliquido, 
	(CASE WHEN notafiscalservico.numeronfse IS NOT NULL THEN  
	   notafiscalservico.numeronfse 
	ELSE              
	   notafiscalservico.numero::VARCHAR 
	END)::VARCHAR AS numerodocumentomostrado      
 
	 
	FROM notafiscalservico 
	LEFT JOIN notafiscalservico_calculofrete USING(grupo,empresa,filial,unidade,diferenciadornumero,serie,numero)
 
	 
	JOIN fatura_composicao ON fatura_composicao.tipodocumentoorigem = notafiscalservico.tipodocumento 
	AND fatura_composicao.grupodocumentoorigem = notafiscalservico.grupo 
	AND fatura_composicao.empresadocumentoorigem = notafiscalservico.empresa 
	AND fatura_composicao.filialdocumentoorigem = notafiscalservico.filial 
	AND fatura_composicao.unidadedocumentoorigem = notafiscalservico.unidade 
	AND fatura_composicao.diferenciadornumerodocumentoorigem = notafiscalservico.diferenciadornumero 
	AND fatura_composicao.seriedocumentoorigem = notafiscalservico.serie 
	AND fatura_composicao.numerosequenciadocumentoorigem = notafiscalservico.numero
 
	JOIN fatura ON fatura.grupo = fatura_composicao.grupo 
	AND fatura.empresa = fatura_composicao.empresa 
	AND fatura.filial = fatura_composicao.filial 
	AND fatura.unidade = fatura_composicao.unidade 
	AND fatura.sequencia = fatura_composicao.sequencia
 
	LEFT OUTER JOIN fatura_pagamento ON fatura_pagamento.grupo = fatura_composicao.grupo 
	AND fatura_pagamento.empresa = fatura_composicao.empresa 
	AND fatura_pagamento.filial = fatura_composicao.filial 
	AND fatura_pagamento.unidade = fatura_composicao.unidade 
	AND fatura_pagamento.sequencia = fatura_composicao.sequencia 
	AND fatura_pagamento.sequenciapagamento =  (SELECT fatura_contabilizacao.sequenciafaturapagamento FROM fatura_contabilizacao  
	                                                                                WHERE fatura_contabilizacao.grupo = fatura_composicao.grupo 
	                                                                                AND fatura_contabilizacao.empresa = fatura_composicao.empresa 
	                                                                                AND fatura_contabilizacao.filial = fatura_composicao.filial 
	                                                                                AND fatura_contabilizacao.unidade = fatura_composicao.unidade 
	                                                                                AND fatura_contabilizacao.sequencia = fatura_composicao.sequencia 
	                                                                                AND fatura_contabilizacao.sequenciafaturacomposicao = fatura_composicao.sequenciacomposicao  
	order by fatura_contabilizacao.sequenciacontabilizacao desc    
	                                                                                LIMIT 1)
 
	WHERE notafiscalservico.grupo = {?Grupo} 
	AND notafiscalservico.empresa = {?Empresa} 
	AND ({?Filial} = 0 OR notafiscalservico.filial = {?Filial}) 
	AND ({?Unidade} = 0 OR notafiscalservico.unidade = {?Unidade}) 
	AND (CASE WHEN '{?Status}' = 'Emitidos - Documentos' THEN  
	(notafiscalservico.dtemissao::date BETWEEN {?DataInicial} AND {?DataFinal}) 
	                   WHEN '{?Status}' = 'Faturados Pagos' THEN  
	(fatura_pagamento.dtpagamento::date BETWEEN {?DataInicial} AND {?DataFinal}) 
	                   WHEN '{?Status}' = 'Abertos Não Faturados' THEN 
	(fatura.dtvencimento::date BETWEEN {?DataInicial} AND {?DataFinal}) 
	                   ELSE 
	(fatura.dtprevisaopagamento::date BETWEEN {?DataInicial} AND {?DataFinal}) 
	END) 
	AND (CASE WHEN '{?Radical}' = 'Sim' AND '{?CnpjCpfCodigo}' <> ''  
	                              THEN SUBSTR(notafiscalservico.cnpjcpfcodigo,1,8) = SUBSTR('{?CnpjCpfCodigo}',1,8) 
	                   ELSE     
	                              ('{?CnpjCpfCodigo}' = '' OR notafiscalservico.cnpjcpfcodigo = '{?CnpjCpfCodigo}') 
	                   END) 
	AND notafiscalservico.dtcancelamento IS NULL 
	AND notafiscalservico.numero < 1000000 
	AND (notafiscalservico.emissaoeletronica = 2 OR (notafiscalservico.emissaoeletronica = 1 AND notafiscalservico.situacaonfse = 3))
 
	UNION ALL
 
	SELECT  
	      redespacho.grupo, 
	      redespacho.empresa, 
	      redespacho.filial, 
	      redespacho.unidade, 
	      redespacho.cnpjcpfcodigoemissor, 
	      1 AS diferenciadornumero, 
	      redespacho.serie, 
	      redespacho.numero, 
	      redespacho.dtemissao, 
	      redespacho.tipodocumento, 
	      redespacho.remetente, 
	      redespacho.destinatario, 
	      redespacho.cnpjcpfcodigopagadorfrete, 
	                                (SUBSTR(redespacho.cnpjcpfcodigopagadorfrete,1,8))::varchar AS cnpjpagadorradical, 
	      redespacho.pagadorfrete, 
	      redespacho.valortotalprestacao, 
	      redespacho.numero::VARCHAR AS numerodocumentomostrado 
	FROM redespacho
 
	JOIN fatura_composicao ON fatura_composicao.tipodocumentoorigem = redespacho.tipodocumento 
	AND fatura_composicao.grupodocumentoorigem = redespacho.grupo 
	AND fatura_composicao.empresadocumentoorigem = redespacho.empresa 
	AND fatura_composicao.cnpjcpfcodigoemissordocumentoorigem = redespacho.cnpjcpfcodigoemissor 
	AND CAST(fatura_composicao.dtemissaodocumentoorigem AS date) = redespacho.dtemissao 
	AND fatura_composicao.seriedocumentoorigem = redespacho.serie 
	AND fatura_composicao.numerosequenciadocumentoorigem = redespacho.numero
 
	JOIN fatura ON fatura.grupo = fatura_composicao.grupo 
	AND fatura.empresa = fatura_composicao.empresa 
	AND fatura.filial = fatura_composicao.filial 
	AND fatura.unidade = fatura_composicao.unidade 
	AND fatura.sequencia = fatura_composicao.sequencia
 
	LEFT OUTER JOIN fatura_pagamento ON fatura_pagamento.grupo = fatura_composicao.grupo 
	AND fatura_pagamento.empresa = fatura_composicao.empresa 
	AND fatura_pagamento.filial = fatura_composicao.filial 
	AND fatura_pagamento.unidade = fatura_composicao.unidade 
	AND fatura_pagamento.sequencia = fatura_composicao.sequencia 
	AND fatura_pagamento.sequenciapagamento =  (SELECT fatura_contabilizacao.sequenciafaturapagamento FROM fatura_contabilizacao  
	                                                                                WHERE fatura_contabilizacao.grupo = fatura_composicao.grupo 
	                                                                                AND fatura_contabilizacao.empresa = fatura_composicao.empresa 
	                                                                                AND fatura_contabilizacao.filial = fatura_composicao.filial 
	                                                                                AND fatura_contabilizacao.unidade = fatura_composicao.unidade 
	                                                                                AND fatura_contabilizacao.sequencia = fatura_composicao.sequencia 
	                                                                                AND fatura_contabilizacao.sequenciafaturacomposicao = fatura_composicao.sequenciacomposicao  
	order by fatura_contabilizacao.sequenciacontabilizacao desc    
	                                                                                LIMIT 1)
 
	WHERE redespacho.grupo = {?Grupo} 
	AND redespacho.empresa = {?Empresa} 
	AND ({?Filial} = 0 OR redespacho.filial = {?Filial}) 
	AND ({?Unidade} = 0 OR redespacho.unidade = {?Unidade}) 
	AND (CASE WHEN '{?Status}' = 'Emitidos - Documentos' THEN  
	(redespacho.dtemissao::date BETWEEN {?DataInicial} AND {?DataFinal}) 
	                   WHEN '{?Status}' = 'Faturados Pagos' THEN  
	(fatura_pagamento.dtpagamento::date BETWEEN {?DataInicial} AND {?DataFinal}) 
	                   WHEN '{?Status}' = 'Abertos Não Faturados' THEN 
	(fatura.dtvencimento::date BETWEEN {?DataInicial} AND {?DataFinal}) 
	                   ELSE 
	(fatura.dtprevisaopagamento::date BETWEEN {?DataInicial} AND {?DataFinal}) 
	END) 
	AND (CASE WHEN '{?Radical}' = 'Sim' AND '{?CnpjCpfCodigo}' <> ''  
	                              THEN SUBSTR(redespacho.cnpjcpfcodigopagadorfrete,1,8) = SUBSTR('{?CnpjCpfCodigo}',1,8) 
	                   ELSE  
	                              ('{?CnpjCpfCodigo}' = '' OR redespacho.cnpjcpfcodigopagadorfrete = '{?CnpjCpfCodigo}') 
	                   END) 
	AND redespacho.numero < 1000000) retorno
 
	JOIN grupo ON grupo.codigo = retorno.grupo
 
	JOIN empresa ON empresa.grupo = retorno.grupo AND empresa.codigo = retorno.empresa
 
	LEFT OUTER JOIN filial ON filial.grupo = retorno.grupo 
	AND filial.empresa = retorno.empresa 
	AND filial.codigo = retorno.filial
 
	LEFT OUTER JOIN unidade ON unidade.grupo = retorno.grupo 
	AND unidade.empresa = retorno.empresa 
	AND unidade.filial = retorno.filial 
	AND unidade.codigo = retorno.unidade
 
	LEFT OUTER JOIN cadastro cad_remetente ON cad_remetente.codigo = retorno.remetente 
	LEFT OUTER JOIN cadastro cad_destinatario ON cad_destinatario.codigo = retorno.destinatario 
	LEFT OUTER JOIN cadastro cad_pagadorfrete ON cad_pagadorfrete.codigo = retorno.cnpjcpfcodigopagadorfrete
 
	LEFT OUTER JOIN tipodocumento ON tipodocumento.codigo = retorno.tipodocumento
 
	LEFT OUTER JOIN fatura_composicao ON fatura_composicao.tipodocumentoorigem = retorno.tipodocumento 
	AND fatura_composicao.grupodocumentoorigem = retorno.grupo 
	AND fatura_composicao.empresadocumentoorigem = retorno.empresa 
	AND fatura_composicao.filialdocumentoorigem = retorno.filial 
	AND fatura_composicao.unidadedocumentoorigem = retorno.unidade 
	AND (CASE WHEN retorno.tipodocumento = 11 THEN fatura_composicao.cnpjcpfcodigoemissordocumentoorigem = retorno.cnpjcpfcodigoemissor 
	          ELSE TRUE 
	     END) 
	AND (CASE WHEN retorno.tipodocumento <> 11 THEN fatura_composicao.diferenciadornumerodocumentoorigem = retorno.diferenciadornumero 
	          ELSE TRUE 
	     END) 
	AND fatura_composicao.seriedocumentoorigem = retorno.serie 
	AND fatura_composicao.numerosequenciadocumentoorigem = retorno.numero 
	AND (CASE WHEN retorno.tipodocumento = 11 THEN fatura_composicao.dtemissaodocumentoorigem::date = retorno.dtemissao 
	          ELSE TRUE 
	     END) 
	      
	LEFT OUTER JOIN fatura ON fatura.grupo = fatura_composicao.grupo 
	AND fatura.empresa = fatura_composicao.empresa 
	AND fatura.filial = fatura_composicao.filial 
	AND fatura.unidade = fatura_composicao.unidade 
	AND fatura.sequencia = fatura_composicao.sequencia
 
	LEFT OUTER JOIN fatura_pagamento ON fatura_pagamento.grupo = fatura_composicao.grupo 
	AND fatura_pagamento.empresa = fatura_composicao.empresa 
	AND fatura_pagamento.filial = fatura_composicao.filial 
	AND fatura_pagamento.unidade = fatura_composicao.unidade 
	AND fatura_pagamento.sequencia = fatura_composicao.sequencia 
	AND fatura_pagamento.sequenciapagamento =  (SELECT fatura_contabilizacao.sequenciafaturapagamento FROM fatura_contabilizacao  
	                                                                                WHERE fatura_contabilizacao.grupo = fatura_composicao.grupo 
	                                                                                AND fatura_contabilizacao.empresa = fatura_composicao.empresa 
	                                                                                AND fatura_contabilizacao.filial = fatura_composicao.filial 
	                                                                                AND fatura_contabilizacao.unidade = fatura_composicao.unidade 
	                                                                                AND fatura_contabilizacao.sequencia = fatura_composicao.sequencia 
	                                                                                AND fatura_contabilizacao.sequenciafaturacomposicao = fatura_composicao.sequenciacomposicao  
	order by fatura_contabilizacao.sequenciacontabilizacao desc 
	                                                                                LIMIT 1)
 
	WHERE 
	(CASE WHEN '{?Status}' = 'Abertos Não Faturados' THEN 
	fatura.composicao = 2
 
	WHEN '{?Status}' = 'Faturados Abertos' THEN 
	fatura.composicao = 1  
	AND fatura_composicao.valorpendentecnpjcliente > 0 
	AND fatura_pagamento.dtpagamento IS NULL
 
	WHEN '{?Status}' = 'Faturados Pagos' THEN 
	fatura.composicao = 1  
	AND fatura_composicao.valorpendentecnpjcliente = 0 
	AND fatura_pagamento.dtpagamento IS NOT NULL
 
	WHEN '{?Status}' = 'Emitidos - Documentos' THEN 1=1 END) 
	ORDER BY retorno.numero, 
	(CASE WHEN '{?Status}' = 'Abertos Não Faturados' THEN fatura.dtvencimento 
	           WHEN '{?Status}' = 'Faturados Abertos' THEN fatura.dtprevisaopagamento 
	           WHEN '{?Status}' = 'Faturados Pagos' THEN fatura.dtpagamento 
	           WHEN '{?Status}' = 'Emitidos - Documentos' THEN retorno.dtemissao 
	END)
 
	 
 
	 
 
	 
 
	 
 
	Se alguém puder dar alguma dica...
 
	VAleuu!