Advertisement
joaovic030

sql-error-subquery

Jun 1st, 2021
1,302
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ActiveRecord::StatementInvalid (PG::CardinalityViolation: ERROR:  more than one row returned by a subquery used as an expression
  2. : select cp.cpf as CPF,
  3.             cp.pis_pasep as NIT,
  4.             cp.data_de_nascimento as DATA_NASCIMENTO,
  5.             cp.nome as NOME,
  6.             v.matricula as VINCULO,
  7.             b.data_de_ingresso as data_de_ingresso,
  8.             cb.ato_de_aposentadoria as data_aposentadoria,
  9.             'DEFAULT' AS forma_de_ingresso,
  10.             o.nome as ORGAO,
  11.             CASE cb.tipo_de_beneficio WHEN 0 THEN 'APOSENTADORIA' WHEN 1 THEN 'PENSÃO' END as tipo_de_beneficio,
  12.             CASE cb.motivo WHEN 1 THEN 'VOLUNTÁRIA_POR_TEMPO_DE_CONTRIBUICAO' WHEN 2 THEN 'RES_REM_PROPORCIONAL' WHEN 3 THEN 'INVALIDEZ' WHEN 4 THEN 'RESERVA_REMUNERADA' WHEN 5 THEN 'FACULTATIVA' WHEN 6 THEN 'COMPULSÓRIA' WHEN 7 THEN 'ESPECIAL' WHEN 8 THEN 'REFORMA' WHEN 9 THEN 'CONTRI_FACULTATIVO' WHEN 10 THEN 'EX_OFICIO' WHEN 11 THEN 'IDADE' WHEN 12 THEN 'NAO_INFORMADO' WHEN 13 THEN 'PENSAO' WHEN 14 THEN 'VOLUNTÁRIA_POR_IDADE' WHEN 15 THEN 'VOLUNTÁRIA_POR_TEMPO_DE_CONTRIBUICAO_MAGISTÉRIO' END as motivo,
  13.             sit.nome as SIT_ANALISE_BENEFICIO,
  14.             ori.nome as ORIENTACAO,
  15.             b.descricao_da_analise as descricao_da_analise,
  16.             (SELECT docs_tipos.sigla from docs_tipos WHERE docs_tipos.id = comprova_docs_cd.docs_tipo_id) documentos_faltantes_concessao,
  17.             CASE WHEN srprev.regime_previdenciario = 'RGPS' THEN ssr.nome END as sit_comp_rgps,
  18.             CASE WHEN srprev.regime_previdenciario = 'RPPS_OUTRO' THEN ssr.nome END as sit_comp_rpps_outro,
  19.             cria_colunas_docs_tipos(array_agg(DISTINCT dt.sigla), 'DEMO TS') AS DEMO_TS,
  20.             cria_colunas_docs_tipos(array_agg(DISTINCT dt.sigla), 'MAPA TS') AS MAPA_TS,
  21.             cria_colunas_docs_tipos(array_agg(DISTINCT dt.sigla), 'ATO') AS ATO,
  22.             cria_colunas_docs_tipos(array_agg(DISTINCT dt.sigla), 'RET ATO APO') AS RET_ATO_APO,
  23.             cria_colunas_docs_tipos(array_agg(DISTINCT dt.sigla), 'APOSTILA') AS APOSTILA,
  24.             cria_colunas_docs_tipos(array_agg(DISTINCT dt.sigla), 'HOMOLOG') AS HOMOLOG,
  25.             cria_colunas_docs_tipos(array_agg(DISTINCT dt.sigla), 'DENEGACAO TCE') AS DENEGACAO_TCE,
  26.             cria_colunas_docs_tipos(array_agg(DISTINCT dt.sigla), 'LAUDO') AS LAUDO,
  27.             cria_colunas_docs_tipos(array_agg(DISTINCT dt.sigla), 'RG/CPF') AS RG_CPF,
  28.             cria_colunas_docs_tipos(array_agg(DISTINCT dt.sigla), 'CERT NASC') AS CERT_NASC,
  29.             cria_colunas_docs_tipos(array_agg(DISTINCT dt.sigla), 'CERT CAS') AS CERT_CAS,
  30.             cria_colunas_docs_tipos(array_agg(DISTINCT dt.sigla), 'HIST FUNC') AS HISTORICO_FUNCIONAL,
  31.             cria_colunas_docs_tipos(array_agg(DISTINCT dt.sigla), 'FP') AS FP,
  32.             cria_colunas_docs_tipos(array_agg(DISTINCT dt.sigla), 'RE') AS RE,
  33.             cria_colunas_docs_tipos(array_agg(DISTINCT dt.sigla), 'CONTRATO TRABALHO') AS CONTRATO_TRABALHO,
  34.             cria_colunas_docs_tipos(array_agg(DISTINCT dt.sigla), 'FGTS') AS FGTS,
  35.             cria_colunas_docs_tipos(array_agg(DISTINCT dt.sigla), 'HISTORICO FINANCEIRO') AS HISTORICO_FINANCEIRO,
  36.             cria_colunas_docs_tipos(array_agg(DISTINCT dt.sigla), 'CTC') AS CTC,
  37.             cria_colunas_docs_tipos(array_agg(DISTINCT dt.sigla), 'CERT RPPS') AS CERT_RPPS,
  38.             cria_colunas_docs_tipos(array_agg(DISTINCT dt.sigla), 'CTS') AS CTS,
  39.             cria_colunas_docs_tipos(array_agg(DISTINCT dt.sigla), 'CTPS') AS CTPS,
  40.             mapa_temp.nome as situacao_mapa,
  41.                   rpps_cert.nome as situacao_cert_rpps,
  42.             tce_sit.nome as situacao_decisao_tce,
  43.             (SELECT ttce.observacao FROM tramites_tces ttce
  44.                       WHERE b.id = ttce.beneficio_id
  45.                       ORDER BY ttce.data DESC LIMIT 1) as tramite_tce,
  46.             b.numero_protocolo_tc as numero_processo_tce,
  47.             b.data_homologacao_tce as data_homologacao,
  48.             b.descr_situacao_homologacao as obs_homologacao,
  49.             b.total_dias_rgps,
  50.             b.total_dias_rgps_comprovado,
  51.             b.total_dias_rpps_outros,
  52.             (SELECT calcula_tempo_inss(SUM(hld.dias_usado), SUM(hld.meses_usado), SUM(hld.anos_usado), SUM(hld.total_de_dias_usado))
  53.                    FROM historico_laborais hld WHERE hld.vinculo_id = v.id) AS total_rpps_outro_comprovado,
  54.             b.tempo_total_contribuicao as tempo_total,
  55.             op.nome as orgao_origem_nome,
  56.             ROW_NUMBER () OVER (
  57.               PARTITION BY v.matricula
  58.               ORDER BY
  59.                 cp.cpf, v.matricula, hl.ordenando_regime, hl.data_de_inicio, hl.data_de_termino, hl.nome_empregador
  60.             ) as Seq_Reg_Prev,
  61.             hl.nome_empregador empregador,
  62.             hl.descricao AS Complemento,
  63.             CASE hl.regime_de_previdencia  WHEN 0 THEN 'RPPS_PROPRIO' WHEN 1 THEN 'RPPS_OUTRO' WHEN 2 THEN 'RGPS' END regime_de_previdencia,
  64.             hl.data_de_inicio,
  65.             hl.data_de_termino,
  66.             CASE hl.comprovado WHEN true THEN '1' WHEN false THEN '0' END AS  Flag_Comprovado,
  67.             ssr.nome AS situacao_regime,
  68.             ori_doc.nome orientacao_regime,
  69.             (SELECT dt1.sigla FROM docs_tipos dt1
  70.                     INNER JOIN comprova_docs cd1 ON dt1.id = cd1.docs_tipo_id
  71.              WHERE cd1.comprovavel_id = hl.hl_id AND cd1.docs_extraido_id IS NULL AND cd1.comprovavel_type = 'HistoricoLaboral'
  72.              AND dt1.principal = true
  73.              GROUP BY dt1.sigla LIMIT 1
  74.             ) AS docto_faltante,
  75.             (SELECT cdh.observacao FROM comprova_docs cdh
  76.             WHERE cdh.vinculo_id = v.id AND cdh.comprovavel_id = hl.hl_id
  77.             AND cdh.observacao != '' AND cdh.observacao IS NOT NULL) AS acao_seguinte,
  78.             hl.total_de_dias AS dias_laborado,
  79.                   CASE hl.comprovado WHEN true THEN hl.total_de_dias END dias_laborado_comprovado,
  80.             (CASE WHEN hl.regime_de_previdencia = 2 THEN b.descr_situac_comprev_inss END) as descrição_da_situacao_do_comprev
  81.             FROM beneficios b
  82.             INNER JOIN vinculos v ON b.vinculo_id = v.id
  83.             INNER JOIN comprev_beneficios cb ON b.id = cb.id
  84.             INNER JOIN pessoa_fisicas p ON v.pessoa_fisica_id = p.id
  85.             INNER JOIN comprev_pessoa_fisicas cp ON p.id = cp.id
  86.             LEFT JOIN (
  87.               SELECT historico_laborais.descricao, historico_laborais.data_de_inicio, historico_laborais.data_de_termino, historico_laborais.vinculo_id, historico_laborais.id hl_id, historico_laborais.regime_de_previdencia, historico_laborais.total_de_dias, historico_laborais.comprovado,
  88.                 empregadores.nome as nome_empregador,
  89.                 CASE historico_laborais.regime_de_previdencia WHEN 0 THEN 0 WHEN 2 THEN 1 WHEN 1 THEN 2 END AS ordenando_regime,
  90.                  historico_laborais.empregador_id
  91.                FROM historico_laborais
  92.                INNER JOIN empregadores ON empregadores.id = historico_laborais.empregador_id
  93.                 WHERE 1=1
  94.               ) hl ON hl.vinculo_id = v.id
  95.             LEFT JOIN (SELECT * FROM comprova_docs WHERE comprova_docs.comprovavel_type = 'HistoricoLaboral') AS comprova_docs_hl ON comprova_docs_hl.comprovavel_id = hl.hl_id
  96.             LEFT JOIN (SELECT * FROM comprova_docs WHERE comprova_docs.comprovavel_type = 'ComprovacoesDocumental') AS comprova_docs_cd ON comprova_docs_cd.comprovavel_id = hl.hl_id
  97.             LEFT JOIN situacao_regime_previdencias AS srprev ON srprev.id = (
  98.               SELECT situr.id FROM situacao_regime_previdencias AS situr
  99.               WHERE situr.vinculo_id = hl.vinculo_id
  100.               ORDER BY situr.created_at DESC LIMIT 1
  101.             )
  102.             LEFT JOIN status_situacao_regimes ssr ON srprev.status_situacao_regime_id = ssr.id
  103.             LEFT JOIN tramites_tces tt ON tt.beneficio_id = b.id
  104.             LEFT JOIN orientacoes_docs ori_doc ON srprev.orientacoes_doc_id = ori_doc.id
  105.             LEFT JOIN docs ON docs.vinculo_id=v.id
  106.             LEFT JOIN doc_docs_tipos ddt on ddt.doc_id=docs.id
  107.             LEFT JOIN docs_tipos dt on dt.id=ddt.docs_tipo_id
  108.             LEFT JOIN comprova_docs on comprova_docs.vinculo_id=v.id
  109.             LEFT JOIN comprovacoes_documentais comp_doctais On comp_doctais.id=comprova_docs.comprovavel_id
  110.             LEFT JOIN (SELECT DISTINCT ON(vinculo_id) vinculo_id, id, created_at FROM beneficio_ocorrencias WHERE orientacao_id IS NOT NULL ORDER BY vinculo_id,created_at desc) bo ON v.id = bo.vinculo_id
  111.             LEFT JOIN beneficio_ocorrencia_documentos bod ON bo.id = bod.beneficio_ocorrencia_id
  112.             LEFT JOIN beneficio_ocorrencia_doc_nomes bodn ON bod.beneficio_ocorrencia_doc_nome_id = bodn.id
  113.             LEFT JOIN orgoes o ON o.id = b.orgao_id
  114.             LEFT JOIN tce_situacoes tce_sit ON b.tce_situacao_id = tce_sit.id
  115.             LEFT JOIN mapa_temp_servicos mapa_temp ON b.mapa_temp_servico_id = mapa_temp.id
  116.             LEFT JOIN rpps_certidoes rpps_cert ON b.rpps_certidao_id = rpps_cert.id
  117.             LEFT JOIN orientacoes ori ON b.orientacao_id = ori.id
  118.             LEFT JOIN situacao_internas sit ON b.situacao_interna_id = sit.id
  119.             LEFT JOIN comprev_ins comp ON b.comprev_ins_id = comp.id
  120.             LEFT JOIN orgao_origem_processos op ON op.id = cb.orgao_origem_processo_id
  121.             LEFT JOIN usuarios u ON b.usuario_analise = u.id
  122.             WHERE ( docs.flag = 20 OR  docs.flag = 21 OR docs.flag = 22 )
  123.             GROUP BY
  124.             v.id,
  125.             v.matricula,
  126.             cp.cpf,
  127.             cp.pis_pasep,
  128.             cp.data_de_nascimento,
  129.             cp.nome,
  130.             o.nome,
  131.             b.data_de_ingresso,
  132.             cb.ato_de_aposentadoria,
  133.             u.nome,
  134.             sit.nome,
  135.             ori.nome,
  136.             b.descricao_da_analise,
  137.             documentos_faltantes_concessao,
  138.             cb.tipo_de_beneficio,
  139.             cb.motivo,
  140.             b.descr_situac_comprev_inss,
  141.             b.descr_situacao_homologacao,
  142.             b.data_homologacao_tce,
  143.             b.numero_protocolo_tc,
  144.             tramite_tce,
  145.             b.total_dias_rgps,
  146.             b.total_dias_rgps_comprovado,
  147.             b.total_dias_rpps_outros,
  148.             b.tempo_total_contribuicao,
  149.             b.com_tempo_de_clt_no_ente,
  150.             mapa_temp.nome,
  151.             rpps_cert.nome,
  152.             tce_sit.nome,
  153.             op.nome,
  154.             hl.nome_empregador,
  155.             hl.hl_id,
  156.             regime_de_previdencia,
  157.             srprev.regime_previdenciario,
  158.             ssr.nome,
  159.             ori_doc.nome,
  160.             hl.ordenando_regime,
  161.             hl.comprovado,
  162.             hl.data_de_inicio,
  163.             hl.data_de_termino,
  164.             hl.descricao,
  165.                   hl.total_de_dias
  166.  
  167.            
  168.             ORDER BY cp.cpf, v.matricula, hl.ordenando_regime, hl.data_de_inicio, hl.data_de_termino, hl.nome_empregador):
  169.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement