Porciones Conde-problemas con el Group By

DBA Geral (instalação, configuração do banco, scripts do Sql*Plus, shell scripts, batch scripts, etc...)
  

Notael Sab, 07 Jul 2018 2:17 pm

Estimados buenas tardes.

Estoy creando una consulta para exportar datos en excel para un sistema financiero que se desplegarán en mi trabajo y tengo problemas para montar el select para cuantas cuotas hay para ese tema particular, es decir; Si el documento 99999 vuelta 3 veces en mi resultado de select es decir es 3 parcelas para el mismo tema pero cuando el número de campo específico (ICR. Error devuelto de oracle NR_PARCELA): ORA-00937: no una función de simple grupo 00937. 00000-"no una función de grupo solo" * causa: * acción: error en línea: columna 2: 77 esta es mi selección:
Código: Seleccionar todo
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_PADRAO                HP      ON      CR.CD_HISTORICO_PADRAO  =   HP.CD_HISTORICO_PADRAO
  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';
aquí es donde estoy tratando de cambiar:
Código: Seleccionar todo
CR.NR_DOCUMENTO ||'-'|| ICR.NR_PARCELA ||'/'|| ICR.NR_PARCELA AS NUMERO_DOCUMENTO,
después de la barra en este extracto es necesaria para mostrar la numeración de las parcelas son beneficios del mismo seleccionar IE, usando seleccione 10418 del documento actualmente conseguir lo siguiente:
Código: Seleccionar todo
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
Ma en columna NUMERO_DOCUMENTO podemos ver que después de "/" en la numeración de parcelas siempre devuelve 1. Por ejemplo lo que es correcto sería:
Código: Seleccionar todo
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
ya hemos insertado un grupo al final de mi selección, pero no resuelve...

¿Me podrias ayudar? Yo estoy luchando con esta selección pocos días ya y sólo falta que termine.
silvadouglas

Notael Mié, 11 Jul 2018 3:31 pm

0
DanielNN
Ubicación: Fortaleza - CE

att,

Daniel N.N.



Volver a DBA General

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados