
leo.bolsoni
Membros-
Total de itens
1 -
Registro em
-
Última visita
Sobre leo.bolsoni

leo.bolsoni's Achievements
0
Reputação
-
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!