Dificuldade (Dúvida) View
Pessoal Bom dia !
Vou começar tentando explicar o problema que preciso resolver e depois a dificuldade que estou tendo e que ainda não encontrei solução.
Seguinte, possuo um programa para geração de etiquetas, onde através do banco trago as informações geradas nas mesmas, ordenadas por nota fiscal , porem preciso colocar dois campos X / Y, onde Y é a quantidade de etiquetas de uma nota especifica ex: uma nota possui 100 etiquetas, entao Y seria 100 e X seria de 1 a 100. Ai vem o problema, possuo uma view para agrupar e rankear as nfs gerando assim as infos do campos X, e executando a query da view em si a ordenação vem certinho, porem ao dar um select na view em si a ordenação de algumas notas vem errada.
Não sei se consegui ser muito claro em meu problema, vou postar a query da view e o resultado. Se alguém tiver alguma ideia do que pode ser o problema.
Executando essa query, tenho o resultado correto no campo D_RANK.
Porem ao dar um select na view em si , Algumas notas saem com o campo D_rank errado. Ex: teria que sair ordenado dessa forma 1 ,2 ,3, 4 .... porem sai assim: 758,759,760 .... .
Resumindo: Executando a query tenho o resultado correto e executando a view não.
Se alguem puder me ajudar a intender o motivo.
Vou começar tentando explicar o problema que preciso resolver e depois a dificuldade que estou tendo e que ainda não encontrei solução.
Seguinte, possuo um programa para geração de etiquetas, onde através do banco trago as informações geradas nas mesmas, ordenadas por nota fiscal , porem preciso colocar dois campos X / Y, onde Y é a quantidade de etiquetas de uma nota especifica ex: uma nota possui 100 etiquetas, entao Y seria 100 e X seria de 1 a 100. Ai vem o problema, possuo uma view para agrupar e rankear as nfs gerando assim as infos do campos X, e executando a query da view em si a ordenação vem certinho, porem ao dar um select na view em si a ordenação de algumas notas vem errada.
Não sei se consegui ser muito claro em meu problema, vou postar a query da view e o resultado. Se alguém tiver alguma ideia do que pode ser o problema.
CREATE OR REPLACE FORCE VIEW "EMS2ESP"."V_ES_CONFERENCIA_2" AS select LINHA, cdd_embarq,nr_nota_fis,nr_pedido,nr_pedido_2,nr_resumo,tipo,cod_barras,rua,cod_emitente,nome_emit,cidade,estado,pais,nome_transp, DENSE_RANK() OVER (PARTITION BY (NR_NOTA_FIS) ORDER BY (LINHA)) AS D_RANK from ems2esp.v_es_conferencia where cdd_embarq = ''854'';
Executando essa query, tenho o resultado correto no campo D_RANK.
Porem ao dar um select na view em si
"select * from ems2esp.v_es_conferencia_2 where cdd_embarq = ''854'';"
Resumindo: Executando a query tenho o resultado correto e executando a view não.
Se alguem puder me ajudar a intender o motivo.
Danilo Franco
Curtidas 0
Respostas
Emerson Nascimento
17/12/2019
aparentemente é isso mesmo:
e pra usar:
CREATE OR REPLACE FORCE VIEW "EMS2ESP"."V_ES_CONFERENCIA_2" AS select LINHA, cdd_embarq, nr_nota_fis, nr_pedido, nr_pedido_2, nr_resumo, tipo, cod_barras, rua, cod_emitente, nome_emit, cidade, estado, pais, nome_transp, DENSE_RANK() OVER (PARTITION BY (NR_NOTA_FIS) ORDER BY (LINHA)) AS D_RANK from ems2esp.v_es_conferencia;
e pra usar:
select * from ems2esp.v_es_conferencia_2 where cdd_embarq = '854' order by nr_nota_fis, LINHA
GOSTEI 0