Resolvido com o partition by.
Obrigado chiappa.
De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em
nome de J. Laurindo Chiappa
Enviada em: Wednesday, 20 de June de 2012 14:36
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Re: consulta select
Neste momento não tenho o tempo pra te montar um exemplo completo, mas pelo
que entendi o que vc quer é uma soma Particionada dos valores de ICMS, mas
no caso particionando por nota fiscal :
http://askanantha.blogspot.com.br/2007/10/running-total-or-cumulative-sum-us
ing.html e
http://asktom.oracle.com/pls/asktom/f?p=100:11:0P11_QUESTION_ID:17937641
00346222947 são exemplos, e veja que em ambos além do OVER foi indicado um
PARTITION, acho que é isso q tá faltando
[]s
Chiappa
--- Em oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br>
, Márcio - Grupos Oracle escreveu
>
> Boas.
>
>
>
> Depois de tanto tempo sem desenvolver, enferrujei total.
>
>
>
> Preciso de ajuda numa consulta, é o seguinte, tenho as informações e tenho
> um campo que tem o valor total da nota, e tenho outro campo que tem o ICMS
> para cada item da nota. Eu preciso somar o valor do ICMS e descontar do
> total da nota. Para uma nota funciona, mas quando coloco para todas o
select
> fica doidão.
>
>
>
> Estou tentando utilizar o OVER, mas não estão agrupando por nada e está
> dando erro.
>
>
>
> SELECT dbnp.db_notap_nro AS NOTA,
>
> round(DBNF.DB_NOTA_VLR_PROD,2) +
> sum(round(dbnp.db_notap_vlr_icms,2)) OVER(ORDER BY dbnp.db_notap_nro)
> "Valor Sem Tributação",
>
> round(DBNF.DB_NOTA_VLR_PROD,2) AS "Valor Total Nota",
>
> dbnf.db_nota_cond_pgto AS "Pagamento",
>
> dbnf.db_nota_operacao AS "Natureza Operação",
>
> DBNF.DB_NOTA_DT_EMISSAO,
>
> dbc.db_cli_nome AS "Cliente",
>
> dbc.db_cli_cidade AS "Cidade",
>
> dbc.db_cli_situacao AS "Situaçao",
>
> dbc.db_cli_lpreco AS "Lista de Preço",
>
> dbc.db_cli_regiao AS "Micro Região",
>
> dbp.db_prod_descricao AS "Produto",
>
> dbtr.db_tbrep_nome AS "Representante",
>
> dbtrs.db_tbrep_nome AS "Superior",
>
> dbtf.db_tbfam_descricao AS "Categoria do Produto",
>
> dbtra.db_tbatv_descricao AS "Ramo Atividade",
>
> case when dbto.db_tbops_fat = 'S' then 'Venda'
>
> when dbto.db_tbops_fat = 'B' then 'Bonificação'
>
> when dbto.db_tbops_fat = 'D' then 'Devolução'
>
> when dbto.db_tbops_fat = 'N' then 'Outras Saídas'
>
> else 'Transferência'
>
> end AS "Tipo Nota"
>
> FROM xxx.DB_NOTA_PROD DBNP, xx.db_nota_fiscal dbnf, xx.db_cliente dbc,
> xx.db_produto dbp,
>
> xx.db_tb_repres dbtr, xx.db_tb_repres dbtrs, xx.db_tb_familia dbtf,
>
> xx.db_tb_ramo_ativ dbtra, xx.db_tb_opers dbto
>
> WHERE dbnp.db_notap_empresa = '016'
>
> AND DBNP.DB_NOTAP_EMPRESA = dbnf.db_nota_empresa
>
> AND DBNP.DB_NOTAP_NRO = DBNF.db_nota_nro
>
> AND DBNP.DB_NOTAP_SERIE = DBNF.DB_NOTA_SERIE
>
> AND DBC.DB_CLI_CODIGO = DBNF.DB_NOTA_CLIENTE
>
> AND DBNP.DB_NOTAP_PRODUTO = DBP.DB_PROD_CODIGO
>
> AND DBNF.DB_NOTA_REPRES = DBTR.DB_TBREP_CODIGO
>
> AND dbtr.db_tbrep_superior = dbtrs.db_tbrep_codigo
>
> AND DBP.DB_PROD_FAMILIA = DBTF.DB_TBFAM_CODIGO
>
> AND DBNF.DB_NOTA_OPERACAO = DBTO.DB_TBOPS_COD
>
> and dbc.db_cli_ramativ = dbtra.db_tbatv_codigo
>
> AND DBNF.DB_NOTA_DT_EMISSAO BETWEEN '02-JAN-2012' AND '02-JAN-2012'
>
> --AND DBNP.DB_NOTAP_NRO = 11727
>
> --AND DBNP.DB_NOTAP_SERIE = 'D00'
>
> /*group by dbnp.db_notap_nro,
>
> DBNF.DB_NOTA_VLR_PROD,
>
> dbnf.db_nota_cond_pgto,
>
> dbnf.db_nota_operacao,
>
> DBNF.DB_NOTA_DT_EMISSAO,
>
> dbc.db_cli_nome,
>
> dbc.db_cli_cidade,
>
> dbc.db_cli_situacao,
>
> dbc.db_cli_lpreco,
>
> dbc.db_cli_regiao,
>
> dbp.db_prod_descricao,
>
> dbtr.db_tbrep_nome,
>
> dbtrs.db_tbrep_nome,
>
> dbtf.db_tbfam_descricao,
>
> dbtra.db_tbatv_descricao,
>
> dbto.db_tbops_fat*/
>
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
[As partes desta mensagem que não continham texto foram removidas]