Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

cadeveloper

Consullta nada simples

Recommended Posts

Caros Senhores,Preciso gerar um relatório que me me traga o,ultimo preço de cada produto vendido, por mês.Vejam só, não é o maior preço do produto por mês e sim o ultimo preço que ele foi vendido no mês.Por exemplo:Se a prateleira x foi vendida dia 10/01 por R$50,00, no dia 15/01 foi vendida por R$45,00 e no dia 20/01 foi vendida por R$48,00.O preço que me intereça é o do dia 20/01 por R$48,00Como fazer essa maledita consulta ?!Tenhos os seguintes campos:NOTAFISCAL, TIPONOTAFISCAL, CoDIGODOITEM, DESCRICAO1, DESCRICAO2, PRECOUNITARIO, DATA

Compartilhar este post


Link para o post
Compartilhar em outros sites

select *

from venda v1

where to_char(v1.data,'yyyymm') = '200504' -- periodo escolhido

and v1.data = (select max(v2.data)

from venda v2

where to_char(v1.data,'yyyymm') = to_char(v1.data,'yyyymm')

and v1.codigoitem = v2.codigoitem) --iguale a chave da tabela

 

 

acho que é isto !!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que eu entendi você renomeu a tabela venda para v1 e depois para v2.Mas o periodo você estipulou o mês, ou seja terei que gerar um relatorio para cada mês?Não dá para fazer para o ano todo agrupando por mês?Desculpe pelas perguntas cretinas mas é que estou iniciando no oracle.

Compartilhar este post


Link para o post
Compartilhar em outros sites

è uma subquery na mesma tabela por isto o apelido

 

select to_char(v1.data,'yyyymm'),v1.data
from venda v1
where v1.data = (select max(v2.data)
from venda v2
where to_char(v1.data,'yyyymm') = to_char(v1.data,'yyyymm') 
and v1.codigoitem = v2.codigoitem) --iguale a chave da tabela

acho que resolve o que pediu

 

troque venda pela sua tabela !!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, fiz isso...

 

 

SELECT FDLITM, FDUPRC

FROM PRODDTA.F7611B V1

WHERE FDDCT='NF'

AND FDISSU >= 104001

AND FDISSU <= 104030

AND V1.FDISSU = ( SELECT MAX(V2.FDISSU)

FROM PRODDTA.F7611B V2

WHERE V1.FDISSU = V2.FDISSU

AND V1.FDLITM = V2.FDLITM)

 

 

só que ficou só pensando mas não exibiu nada....

 

Dicionario de Dados

 

FDLITM = CODIGO

FDUPRC = PREÇO UNITARIO

FDDCT = TIPO DE NOTA FISCAL

FDISSU = DATA JULIANA

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta ...

 

SELECT FDLITM, FDUPRC

FROM PRODDTA.F7611B V1

WHERE FDDCT='NF'

AND FDISSU >= 104001

AND FDISSU <= 104030

AND V1.FDISSU = ( SELECT MAX(V2.FDISSU)

FROM PRODDTA.F7611B V2

WHERE V1.FDISSU = V2.FDISSU

AND V1.FDLITM = V2.FDLITM

and V2.FDDCT='NF'

AND V2.FDISSU >= 104001

AND V2.FDISSU <= 104030)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola amigo,Esta consulta pode ser feita da seguinte forma:select * from t_venda where rowid in ( select max(rowid) from t_venda group by XXX) order by FDLITM;amigo, neste select você tera que agrupar pelo nome e codigo do produto,isto pode acontecer da seguinte forma:Se quiser agrupar por nome e codigo use o seguinte comando:nome||codigo ou nome,codigoneste caso o select iria ficar da seguinte forma:select * from t_venda where rowid in ( select max(rowid) from t_venda group by nome||produto) order by FDLITM;A ordenação pode ser feita ainda em ordem crescente e decrescente com as cláusulas ASC e DESCorder by FDLITM ASC ouorder by FDLITM DESCEspero ter ajudado,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caros Senhores,

 

Preciso gerar um relatório que me me traga o,ultimo preço de cada produto vendido, por mês.

Vejam só, não é o maior preço do produto por mês e sim o ultimo preço que ele foi vendido no mês.

 

Por exemplo:

 

Se a prateleira x foi vendida dia 10/01 por R$50,00, no dia 15/01 foi

vendida por R$45,00 e no dia 20/01 foi vendida por R$48,00.

O preço que me intereça é o do dia 20/01 por R$48,00

 

Como fazer essa maledita consulta ?!

 

Tenhos os seguintes campos:

 

NOTAFISCAL, TIPONOTAFISCAL, CoDIGODOITEM, DESCRICAO1, DESCRICAO2, PRECOUNITARIO, DATA

<{POST_SNAPBACK}>

Você quer buscar o maior valor do produto vendido no mês, certo?

 

select max(valor)

from tabela

where nome_do_produto like 'algum_nome'

and to_number(extract (month from data)) = 1;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.