Estou criando uma query de exportação de dados em excel para um sistema financeiro que será implantado no meu local de trabalho e estou com dificuldades em montar o select para quantas parcelas existem para aquele determinado item ou seja; se o documento 99999 retorna 3 vezes no meu resultado do select significa que são 3 parcelas referente a um mesmo item mas ao efetuar o count do campo especifico (ICR.NR_PARCELA) o oracle me retorna o erro:
ORA-00937: não é uma função de grupo de grupo simples
00937. 00000 - "not a single-group group function"
*Cause:
*Action:
Erro na linha: 2 Coluna: 77
Este é o meu select:
SELECT DISTINCT
'IMPORTADO' AS MODELO, 'A VENCER' AS SIT_ABERTO_PREVISTO_A_VENCER, TO_CHAR(ICR.DT_VENCIMENTO, 'DD/MM/RRRR') AS DATA_DE_VENCIMENTO,'' AS UNIDADE_DE_NEGOCIO,
CASE WHEN (TD.DS_TIP_DOC = 'RPS SERVICO' AND TP_CON_REC = 'C') THEN 'CR009'
WHEN (TD.DS_TIP_DOC = 'RPS SERVICO' AND TP_CON_REC = 'D') THEN 'CR010'
WHEN (TD.DS_TIP_DOC = 'RECIBO' AND TP_CON_REC = 'D') THEN 'CR019'
WHEN (TD.DS_TIP_DOC = 'NOTA FISCAL ELETRONICA' AND TP_CON_REC = 'C') THEN 'CR009'
WHEN (TD.DS_TIP_DOC = 'BOLETO BANCARIO' AND TP_CON_REC = 'D') THEN 'CR018' ELSE 'CR018' END PO,
TO_CHAR(CR.DT_LANCAMENTO, 'DD/MM/RRRR') AS DATA_DOCUMENTO, TO_CHAR(CR.DT_EMISSAO, 'DD/MM/RRRR') AS DATA_CONTABILIZACAO,
CASE WHEN TD.DS_TIP_DOC = 'RPS SERVICO' THEN 'RPS'
WHEN TD.DS_TIP_DOC = 'RECIBO' THEN 'RC'
WHEN TD.DS_TIP_DOC = 'NOTA FISCAL ELETRONICA' THEN 'NFE'
WHEN TD.DS_TIP_DOC = 'ADIANTAMENTO A CLIENTE' THEN 'ADC' ELSE 'BB' END AS ESPECIE_DE_DOCUMENTO,
CR.NR_DOCUMENTO ||'-'|| ICR.NR_PARCELA ||'/'|| ICR.NR_PARCELA AS NUMERO_DOCUMENTO,
TO_CHAR (ICR.VL_DUPLICATA-CASE WHEN VL_SOMA_RECEBIDO IS NULL THEN 0 ELSE ICR.VL_SOMA_RECEBIDO END, 'FM999G999G990D90') DIF_VLR,
IGESP.ICD.CODIGO AS EMPRESA, CR.CD_CON_REC AS NUMERO_TITULO_BANCARIO, '' AS PORTADOR, '' AS CONTA, '' AS DATA_PROGRAMAVEL_PAGAMENTO, '' AS PORCENTO_PROVAVEL, 'R' AS MOEDA, 'BAN' AS TIPO_BANCARIA_CARTEIRA, 'S' AS ACEITE, 'N' AS PROTESTO,
'' AS PRAZO_PROTESTO_EM_DIAS, 'N' AS MORA_DIARIA, '' AS PORCENTO_MORA_DIARIA, '' AS VALOR_MORA_DIARIA, '' AS PRAZO_MORA, 'N' AS MULTA, '' AS PORCENTO_MULTA, '' AS VALOR_MULTA, '' AS PRAZO_MULTA, 'N' AS DESCONTO, '' AS PORCENTO_DESCONTO,
'' AS VALOR_DESCONTO, '' AS DESCONTO_ATE, 'N' AS CORRECAO_MONETARIA, '' AS INDEXADOR, '' AS INDICE_DATA_BASE, '' AS INDICE_ATUAL, '' AS BANCO_PARA_PAGAMENTO, '' AS AGENCIA_PARA_PAGAMENTO, '' AS NOME_AGENCIA_PARA_PAGAMENTO,
'' AS PRACA_DE_PAGAMENTO, '' AS CONTA_PARA_PAGAMENTO, '' AS CNPJ_CPF_PARA_PAGAMENTO, '' AS INSTRUCAO_I, '' AS INSTRUCAO_II, '' AS INSTRUCAO_III, CR.DS_CON_REC ||' | '|| CR.DS_OBSERVACAO AS OBSERVACOES, '' AS MENSAGEM_BOLETO, '' AS CODIGO_DE_BARRAS,
'' AS LINHA_DIG_FICHA_COMPENS_CONCES, CR.CD_ATENDIMENTO AS CAMPO_CHAVE, '' AS ADICIONAL_CARACTER_I, '' AS ADICIONAL_CARACTER_II, '' AS ADICIONAL_DATA_I, '' AS ADICIONAL_DATA_II, TO_CHAR(ICR.VL_DUPLICATA, 'FM999G999G990D90') ADICIONAL_DECIMAL_I,
TO_CHAR(ICR.VL_SOMA_RECEBIDO, 'FM999G999G990D90') ADICIONAL_DECIMAL_II, '' AS ADICIONAL_LOGICO_I, '' AS ADICIONAL_LOGICO_II, '' AS CÓDIGO_HISTORICO, CR.DS_CON_REC AS HISTÓRICO_COMPLEMENTAR, --RCR.CD_SETOR AS COD_CENTROS_DE_CUSTO,
'100' AS PORCENTO_RATEIO, '' AS BOLETO_TRANSMITIDO, '' AS BOLETO_EMITIDO, '0,00' AS VALOR_PAGO,TO_CHAR(ICR.DT_VENCIMENTO, 'DD/MM/RRRR') AS DATA_REFERENCIA
FROM CON_REC CR
INNER JOIN ITCON_REC ICR ON CR.CD_CON_REC = ICR.CD_CON_REC AND ICR.DT_VENCIMENTO > = '01/01/2017' AND ICR.TP_QUITACAO NOT IN ('Q','V')
LEFT JOIN PROCESSO P ON CR.CD_PROCESSO = P.CD_PROCESSO
LEFT JOIN TIP_DOC TD ON CR.CD_TIP_DOC = TD.CD_TIP_DOC
LEFT JOIN PLANO_CONTAS PC ON CR.CD_REDUZIDO = PC.CD_REDUZIDO
LEFT JOIN FORNECEDOR F ON CR.CD_FORNECEDOR = F.CD_FORNECEDOR
LEFT JOIN ATENDIME A ON CR.CD_ATENDIMENTO = A.CD_ATENDIMENTO
LEFT JOIN PACIENTE P ON A.CD_PACIENTE = P.CD_PACIENTE
LEFT JOIN DESCONTOS_ACRESCIMOS DA1 ON CR.CD_DESCONTO = DA1.CD_DESC_ACRES
LEFT JOIN DESCONTOS_ACRESCIMOS DA2 ON CR.CD_ACRESCIMO = DA2.CD_DESC_ACRES
LEFT JOIN HISTORICO_padrão HP ON CR.CD_HISTORICO_padrão = HP.CD_HISTORICO_padrão
LEFT JOIN NOTA_FISCAL NF ON CR.CD_NOTA_FISCAL = NF.CD_NOTA_FISCAL
LEFT JOIN TIPO_LOGRADOURO TL ON NF.CD_TIPO_LOGRADOURO = TL.CD_TIPO_LOGRADOURO
LEFT JOIN IGESP.IMPORTA_CLIENTES_DZYON ICD ON ( ICD.CPF_CGC = REGEXP_REPLACE(LPAD(P.NR_CPF,11,'0'),'([0-9]{3})([0-9]{3})([0-9]{3})([0-9]{2})','\1.\2.\3-\4'))
OR ( ICD.CPF_CGC = REGEXP_REPLACE(LPAD(F.NR_CGC_CPF,14,'0'),'([0-9]{2})([0-9]{3})([0-9]{3})([0-9]{4})([0-9]{2})','\1.\2.\3/\4-\5'))
OR ( F.NR_CGC_CPF = P.NR_CPF )
OR ( P.NR_IDENTIDADE = ICD.RG_IE )
INNER JOIN RAT_CONREC RCR ON CR.CD_CON_REC = RCR.CD_CON_REC
WHERE CR.NR_DOCUMENTO = '10418';
CR.NR_DOCUMENTO ||'-'|| ICR.NR_PARCELA ||'/'|| ICR.NR_PARCELA AS NUMERO_DOCUMENTO,
DATA_DOCUMENTO | DATA_CONTABILIZACAO | ESPECIE_DE_DOCUMENTO | NUMERO_DOCUMENTO | DIF_VLR | EMPRESA
19/06/2018 | 19/06/2018 | RPS | 10418-1/1 | 21.063,40 |
04/09/2017 | 31/08/2017 | RPS | 10418-1/1 | 1.141,77 | 100045
DATA_DOCUMENTO | DATA_CONTABILIZACAO | ESPECIE_DE_DOCUMENTO | NUMERO_DOCUMENTO | DIF_VLR | EMPRESA
19/06/2018 | 19/06/2018 | RPS | 10418-1/1 | 21.063,40 |
04/09/2017 | 31/08/2017 | RPS | 10418-1/2 | 1.141,77 | 100045
já inseri um group by ao final do meu select mas não resolve..
Poderiam me ajudar? já estou quebrando a cabeça com esse select já faz alguns dias e só falta isso para concluir.