Re: [oracle_br] Help no Script

2012-05-23 Por tôpico Milton Bastos Henriquis Jr.
Espero que o e-mail não tire toda a formatação... vamos ver se fica legível.

Veja se é isso que vc quer.
Tabela que criei com alguns dados, pra fazer o teste:

select tv_data, tv_produto, tv_valor
from teste_vendas;

23/05/2012 1 10,00
22/05/2012 1 9,50
22/05/2012 2 5,00
21/05/2012 2 8,00
01/05/2012 2 2,00
02/05/2012 3 50,00
04/05/2012 3 60,00
14/05/2012 3 65,00


Select que entendi que é o que vc deseja, confira se é isso mesmo:

select *
from teste_vendas
where (tv_data, tv_produto) in (
select max(tv_data), tv_produto from teste_vendas
group by tv_produto);


23/05/2012 1 10,00
22/05/2012 2 5,00
14/05/2012 3 65,00

Ou seja, trouxe agrupado por produto, trazendo sempre o valor do registro
que contém a data mais recente.


Estou muito enferrujado em SQL, não lerei em consideração a performance.
Se algum colega souber  como melhorar essa query, fiquem a vontade pra me
corrigir.




2012/5/23 Bruno Banfi 

> **
>
>
> Só coloquei o campo EST_CUST_UND no group by para tentar explicar para
> vocês o que estava tentando fazer.
>
> Ok Milton, aguardo seu exemplo, muito obrigado.
>
>
> 
> De: Milton Bastos Henriquis Jr. 
> Para: oracle_br@yahoogrupos.com.br
> Enviadas: Quarta-feira, 23 de Maio de 2012 16:29
>
> Assunto: Re: [oracle_br] Help no Script
>
> Sim, nós sabemos disso... rs...
>
> A questão é que vc não pode alterar a lógica do teu select pra ele "rodar",
> ou seja, adicionar um campo no group by apenas
> pra não dar erro de compilação. Alterou a lógica, e daí realmente não vai
> retornar o que vc espera.
>
> Basta vc trabalhar com subselects, por exemplo, isso pensando de maneira
> mais fácil e sem pensar em performance.
>
> Rafael: o e-mail que vc acabou de mandar está errado.
> Ele não quer apenas a ultima data.
> Ele quer a última data DE CADA PRODUTO.
>
> Bruno, assim que tiver um tempinho eu te colo um exemplo.
> Não tenho dados aqui na minha base pra testar esse select, vou tentar gerar
> um pouco de dados pra simular teu caso.
> Mas é muito fácil de fazer, basta usar subselect.
>
> 2012/5/23 Bruno Banfi 
>
> > **
>
> >
> >
> > Milton, fiz dessa maneira porque não é possivel dar um Select na coluna e
> > não colocar no group by.
> >
> > Não posso fazer isso, da erro:
> >
> > SELECT MAX(I.EST_DATA_ENTRADA) DATA_ENTRADA, I.EST_FK_EPI, I.EST_CUST_UND
> > from ESTOQUE as I
> > Group by I.EST_FK_EPI
> >
> >
> > ____
> > De: Milton Bastos Henriquis Jr. 
> > Para: oracle_br@yahoogrupos.com.br
> > Enviadas: Quarta-feira, 23 de Maio de 2012 15:53
> >
> > Assunto: Re: [oracle_br] Help no Script
> >
> > Sim, vc fez errado!
> >
> > Vc colorou o campo VALOR no group by.
> > É por isso que aparecem dois valores diferentes pro mesmo produto - foi
> vc
> > mesmo que mandou que ficasse assim.
> >
> > Eu já imaginei que tivesse esse erro, por isso coloquei aquele
> comentário.
> >
> > Se vc quer apenas da data mais recente, mande agrupas apenas pelo
> produto,
> > daí pegue a data mais recente usando o MAX, e por fim pegue o valor do
> > produto naquela data.
> >
> > 2012/5/23 Bruno Banfi 
> >
> > > **
> >
> > >
> > >
> > > Milton,
> > >
> > > Veja que no resultado aparece dois valores para o mesmo produto mas com
> > > datas diferentes:
> > >
> > >
> > > > 2011-09-282  0.65
> > > > 2012-05-162  0.69
> > >
> > > Na minha consulta precisa aparecer o valor do produto com a data mais
> > > recente. Nesse caso acima era para aparecer somente:
> > >
> > > 2012-05-162  0.69
> > >
> > > Não deu certo o que o Rafael sugeriu. Vou revisar para ver se estou
> > > fazendo alguma coisa errada.
> > >
> > > Obrigado pelo retorno.
> > >
> > > Bruno
> > >
> > > 
> > > De: Milton Bastos Henriquis Jr. 
> > > Para: oracle_br@yahoogrupos.com.br
> > > Enviadas: Quarta-feira, 23 de Maio de 2012 15:27
> > > Assunto: Re: [oracle_br] Help no Script
> > >
> > >
> > > Sobre a sugestão do Rafael, importante lembrar que:
> > > Se for usar rownum, tem que usar subselect também.
> > >
> > > Bruno: tenho quase certeza que vc não explicou corretamente o que 

Re: [oracle_br] Help no Script

2012-05-23 Por tôpico Bruno Banfi
Só coloquei o campo EST_CUST_UND no group by para tentar explicar para vocês o 
que estava tentando fazer.

Ok Milton, aguardo seu exemplo, muito obrigado.





 De: Milton Bastos Henriquis Jr. 
Para: oracle_br@yahoogrupos.com.br 
Enviadas: Quarta-feira, 23 de Maio de 2012 16:29
Assunto: Re: [oracle_br] Help no Script
 
Sim, nós sabemos disso... rs...

A questão é que vc não pode alterar a lógica do teu select pra ele "rodar",
ou seja, adicionar um campo no group by apenas
pra não dar erro de compilação. Alterou a lógica, e daí realmente não vai
retornar o que vc espera.

Basta vc trabalhar com subselects, por exemplo, isso pensando de maneira
mais fácil e sem pensar em performance.


Rafael: o e-mail que vc acabou de mandar está errado.
Ele não quer apenas a ultima data.
Ele quer a última data DE CADA PRODUTO.


Bruno, assim que tiver um tempinho eu te colo um exemplo.
Não tenho dados aqui na minha base pra testar esse select, vou tentar gerar
um pouco de dados pra simular teu caso.
Mas é muito fácil de fazer, basta usar subselect.






2012/5/23 Bruno Banfi 

> **
>
>
> Milton, fiz dessa maneira porque não é possivel dar um Select na coluna e
> não colocar no group by.
>
> Não posso fazer isso, da erro:
>
> SELECT MAX(I.EST_DATA_ENTRADA) DATA_ENTRADA, I.EST_FK_EPI, I.EST_CUST_UND
> from ESTOQUE as I
> Group by I.EST_FK_EPI
>
>
> 
> De: Milton Bastos Henriquis Jr. 
> Para: oracle_br@yahoogrupos.com.br
> Enviadas: Quarta-feira, 23 de Maio de 2012 15:53
>
> Assunto: Re: [oracle_br] Help no Script
>
> Sim, vc fez errado!
>
> Vc colorou o campo VALOR no group by.
> É por isso que aparecem dois valores diferentes pro mesmo produto - foi vc
> mesmo que mandou que ficasse assim.
>
> Eu já imaginei que tivesse esse erro, por isso coloquei aquele comentário.
>
> Se vc quer apenas da data mais recente, mande agrupas apenas pelo produto,
> daí pegue a data mais recente usando o MAX, e por fim pegue o valor do
> produto naquela data.
>
> 2012/5/23 Bruno Banfi 
>
> > **
>
> >
> >
> > Milton,
> >
> > Veja que no resultado aparece dois valores para o mesmo produto mas com
> > datas diferentes:
> >
> >
> > > 2011-09-28                        2                              0.65
> > > 2012-05-16                        2                              0.69
> >
> > Na minha consulta precisa aparecer o valor do produto com a data mais
> > recente. Nesse caso acima era para aparecer somente:
> >
> > 2012-05-16                        2                              0.69
> >
> > Não deu certo o que o Rafael sugeriu. Vou revisar para ver se estou
> > fazendo alguma coisa errada.
> >
> > Obrigado pelo retorno.
> >
> > Bruno
> >
> > 
> > De: Milton Bastos Henriquis Jr. 
> > Para: oracle_br@yahoogrupos.com.br
> > Enviadas: Quarta-feira, 23 de Maio de 2012 15:27
> > Assunto: Re: [oracle_br] Help no Script
> >
> >
> > Sobre a sugestão do Rafael, importante lembrar que:
> > Se for usar rownum, tem que usar subselect também.
> >
> > Bruno: tenho quase certeza que vc não explicou corretamente o que vc
> > realmente deseja.
> >
> > Essa query que vc passou, ela está CORRETA e vc deseja extrair essa
> > informação dela?
> > Ou ela está ERRADA e vc deseja corrigi-la?
> >
> > Se ela estiver correta, pra extrair exatamente o que vc descreveu, é
> > fácil...
> > Sem fazer muita alteração e usando a dica do Rafael:
> >
> > Select DATA_ENTRADA, EST_CUST_UND
> > from (
> > SELECT MAX(I.EST_DATA_ENTRADA) DATA_ENTRADA, I.EST_FK_EPI,I.EST_CUST_UND
> > from ESTOQUE as I, EPI as H
> > INNER JOIN ESTOQUE ON EST_FK_EPI = H.EPI_ID
> > Group by I.EST_FK_EPI, I.EST_CUST_UND
> > order by MAX(I.EST_DATA_ENTRADA))
> > where rownum = 1;
> >
> > Mas tenho o leve pressentimento que não é isso que vc quer... que talvez
> vc
> > queira refazer
> > a query, mudar esse agrupamento, mas nesse caso só dá pra te ajudar se vc
> > realmente explicar melhor.
> >
> > 2012/5/23 Rafael Vieira 
> >
> > > **
> >
> > >
> > >
> > > Tenta colocar a cláusula having fazendo uma condição data = max(data),
> pq
> > > o having aceita um filtro com agrupamento, ou então, faria uma
> > "gamb",order
> > > by data desc  e colocaria um rownum = 1
> > >
> > > 
> > > De: Bruno Banfi 
> > > Para: "oracle_br@yahoogrupos.com.br" 
> > > Enviadas: Quarta-feira

Re: [oracle_br] Help no Script

2012-05-23 Por tôpico Milton Bastos Henriquis Jr.
Sim, nós sabemos disso... rs...

A questão é que vc não pode alterar a lógica do teu select pra ele "rodar",
ou seja, adicionar um campo no group by apenas
pra não dar erro de compilação. Alterou a lógica, e daí realmente não vai
retornar o que vc espera.

Basta vc trabalhar com subselects, por exemplo, isso pensando de maneira
mais fácil e sem pensar em performance.


Rafael: o e-mail que vc acabou de mandar está errado.
Ele não quer apenas a ultima data.
Ele quer a última data DE CADA PRODUTO.


Bruno, assim que tiver um tempinho eu te colo um exemplo.
Não tenho dados aqui na minha base pra testar esse select, vou tentar gerar
um pouco de dados pra simular teu caso.
Mas é muito fácil de fazer, basta usar subselect.






2012/5/23 Bruno Banfi 

> **
>
>
> Milton, fiz dessa maneira porque não é possivel dar um Select na coluna e
> não colocar no group by.
>
> Não posso fazer isso, da erro:
>
> SELECT MAX(I.EST_DATA_ENTRADA) DATA_ENTRADA, I.EST_FK_EPI, I.EST_CUST_UND
> from ESTOQUE as I
> Group by I.EST_FK_EPI
>
>
> 
> De: Milton Bastos Henriquis Jr. 
> Para: oracle_br@yahoogrupos.com.br
> Enviadas: Quarta-feira, 23 de Maio de 2012 15:53
>
> Assunto: Re: [oracle_br] Help no Script
>
> Sim, vc fez errado!
>
> Vc colorou o campo VALOR no group by.
> É por isso que aparecem dois valores diferentes pro mesmo produto - foi vc
> mesmo que mandou que ficasse assim.
>
> Eu já imaginei que tivesse esse erro, por isso coloquei aquele comentário.
>
> Se vc quer apenas da data mais recente, mande agrupas apenas pelo produto,
> daí pegue a data mais recente usando o MAX, e por fim pegue o valor do
> produto naquela data.
>
> 2012/5/23 Bruno Banfi 
>
> > **
>
> >
> >
> > Milton,
> >
> > Veja que no resultado aparece dois valores para o mesmo produto mas com
> > datas diferentes:
> >
> >
> > > 2011-09-282  0.65
> > > 2012-05-162  0.69
> >
> > Na minha consulta precisa aparecer o valor do produto com a data mais
> > recente. Nesse caso acima era para aparecer somente:
> >
> > 2012-05-162  0.69
> >
> > Não deu certo o que o Rafael sugeriu. Vou revisar para ver se estou
> > fazendo alguma coisa errada.
> >
> > Obrigado pelo retorno.
> >
> > Bruno
> >
> > 
> > De: Milton Bastos Henriquis Jr. 
> > Para: oracle_br@yahoogrupos.com.br
> > Enviadas: Quarta-feira, 23 de Maio de 2012 15:27
> > Assunto: Re: [oracle_br] Help no Script
> >
> >
> > Sobre a sugestão do Rafael, importante lembrar que:
> > Se for usar rownum, tem que usar subselect também.
> >
> > Bruno: tenho quase certeza que vc não explicou corretamente o que vc
> > realmente deseja.
> >
> > Essa query que vc passou, ela está CORRETA e vc deseja extrair essa
> > informação dela?
> > Ou ela está ERRADA e vc deseja corrigi-la?
> >
> > Se ela estiver correta, pra extrair exatamente o que vc descreveu, é
> > fácil...
> > Sem fazer muita alteração e usando a dica do Rafael:
> >
> > Select DATA_ENTRADA, EST_CUST_UND
> > from (
> > SELECT MAX(I.EST_DATA_ENTRADA) DATA_ENTRADA, I.EST_FK_EPI,I.EST_CUST_UND
> > from ESTOQUE as I, EPI as H
> > INNER JOIN ESTOQUE ON EST_FK_EPI = H.EPI_ID
> > Group by I.EST_FK_EPI, I.EST_CUST_UND
> > order by MAX(I.EST_DATA_ENTRADA))
> > where rownum = 1;
> >
> > Mas tenho o leve pressentimento que não é isso que vc quer... que talvez
> vc
> > queira refazer
> > a query, mudar esse agrupamento, mas nesse caso só dá pra te ajudar se vc
> > realmente explicar melhor.
> >
> > 2012/5/23 Rafael Vieira 
> >
> > > **
> >
> > >
> > >
> > > Tenta colocar a cláusula having fazendo uma condição data = max(data),
> pq
> > > o having aceita um filtro com agrupamento, ou então, faria uma
> > "gamb",order
> > > by data desc  e colocaria um rownum = 1
> > >
> > > 
> > > De: Bruno Banfi 
> > > Para: "oracle_br@yahoogrupos.com.br" 
> > > Enviadas: Quarta-feira, 23 de Maio de 2012 14:56
> > > Assunto: [oracle_br] Help no Script
> > >
> > >
> > >
> > > Boa tarde a todos,
> > >
> > > Tenho o seguinte script:
> > >
> > > SELECT MAX(I.EST_DATA_ENTRADA) as 'DATA_ENTRADA',
> > > I.EST_FK_EPI,I.EST_CUST_UND
&

Re: [oracle_br] Help no Script

2012-05-23 Por tôpico Rafael Vieira
SELECT max(I.EST_DATA_ENTRADA) as 'DATA_ENTRADA', I.EST_FK_EPI,I.EST_CUST_UND
           from ESTOQUE as I, EPI as H
           INNER JOIN ESTOQUE ON EST_FK_EPI = H.EPI_ID


           Group by I.EST_FK_EPI, I.EST_CUST_UND
       having      I.EST_DATA_ENTRADA = ( Select 
max(ESTOQUE  .EST_DATA_ENTRADA) from ESTOQUE)      
ORDER BY I.EST_FK_EPI 


tenta assim bruno.




 De: Bruno Banfi 
Para: "oracle_br@yahoogrupos.com.br"  
Enviadas: Quarta-feira, 23 de Maio de 2012 16:15
Assunto: Re: [oracle_br] Help no Script
 

  
Milton, fiz dessa maneira porque não é possivel dar um Select na coluna e não 
colocar no group by.

Não posso fazer isso, da erro:

SELECT MAX(I.EST_DATA_ENTRADA) DATA_ENTRADA, I.EST_FK_EPI, I.EST_CUST_UND
from ESTOQUE as I
Group by I.EST_FK_EPI


De: Milton Bastos Henriquis Jr. 
Para: oracle_br@yahoogrupos.com.br 
Enviadas: Quarta-feira, 23 de Maio de 2012 15:53
Assunto: Re: [oracle_br] Help no Script

Sim, vc fez errado!

Vc colorou o campo VALOR no group by.
É por isso que aparecem dois valores diferentes pro mesmo produto - foi vc
mesmo que mandou que ficasse assim.

Eu já imaginei que tivesse esse erro, por isso coloquei aquele comentário.

Se vc quer apenas da data mais recente, mande agrupas apenas pelo produto,
daí pegue a data mais recente usando o MAX, e por fim pegue o valor do
produto naquela data.

2012/5/23 Bruno Banfi 

> **
>
>
> Milton,
>
> Veja que no resultado aparece dois valores para o mesmo produto mas com
> datas diferentes:
>
>
> > 2011-09-28                        2                              0.65
> > 2012-05-16                        2                              0.69
>
> Na minha consulta precisa aparecer o valor do produto com a data mais
> recente. Nesse caso acima era para aparecer somente:
>
> 2012-05-16                        2                              0.69
>
> Não deu certo o que o Rafael sugeriu. Vou revisar para ver se estou
> fazendo alguma coisa errada.
>
> Obrigado pelo retorno.
>
> Bruno
>
> 
> De: Milton Bastos Henriquis Jr. 
> Para: oracle_br@yahoogrupos.com.br
> Enviadas: Quarta-feira, 23 de Maio de 2012 15:27
> Assunto: Re: [oracle_br] Help no Script
>
>
> Sobre a sugestão do Rafael, importante lembrar que:
> Se for usar rownum, tem que usar subselect também.
>
> Bruno: tenho quase certeza que vc não explicou corretamente o que vc
> realmente deseja.
>
> Essa query que vc passou, ela está CORRETA e vc deseja extrair essa
> informação dela?
> Ou ela está ERRADA e vc deseja corrigi-la?
>
> Se ela estiver correta, pra extrair exatamente o que vc descreveu, é
> fácil...
> Sem fazer muita alteração e usando a dica do Rafael:
>
> Select DATA_ENTRADA, EST_CUST_UND
> from (
> SELECT MAX(I.EST_DATA_ENTRADA) DATA_ENTRADA, I.EST_FK_EPI,I.EST_CUST_UND
> from ESTOQUE as I, EPI as H
> INNER JOIN ESTOQUE ON EST_FK_EPI = H.EPI_ID
> Group by I.EST_FK_EPI, I.EST_CUST_UND
> order by MAX(I.EST_DATA_ENTRADA))
> where rownum = 1;
>
> Mas tenho o leve pressentimento que não é isso que vc quer... que talvez vc
> queira refazer
> a query, mudar esse agrupamento, mas nesse caso só dá pra te ajudar se vc
> realmente explicar melhor.
>
> 2012/5/23 Rafael Vieira 
>
> > **
>
> >
> >
> > Tenta colocar a cláusula having fazendo uma condição data = max(data), pq
> > o having aceita um filtro com agrupamento, ou então, faria uma
> "gamb",order
> > by data desc  e colocaria um rownum = 1
> >
> > 
> > De: Bruno Banfi 
> > Para: "oracle_br@yahoogrupos.com.br" 
> > Enviadas: Quarta-feira, 23 de Maio de 2012 14:56
> > Assunto: [oracle_br] Help no Script
> >
> >
> >
> > Boa tarde a todos,
> >
> > Tenho o seguinte script:
> >
> > SELECT MAX(I.EST_DATA_ENTRADA) as 'DATA_ENTRADA',
> > I.EST_FK_EPI,I.EST_CUST_UND
> >            from ESTOQUE as I, EPI as H
> >            INNER JOIN ESTOQUE ON EST_FK_EPI = H.EPI_ID
> >            Group by I.EST_FK_EPI, I.EST_CUST_UND
> >            ORDER BY I.EST_FK_EPI
> >
> > Que da o seguinte resultado:
> >
> > EST_DATA_ENTRADA        EST_FK_EPI        EST_CUST_UND
> > 2012-03-28                        NULL                      23.00
> > 2011-09-28                        2                              0.65
> > 2012-05-16                        2                              0.69
> > 2012-05-16                        4                              1.55
> > 2011-09-28                        59                            3.05
> > 2011-10-27                        77               

Re: [oracle_br] Help no Script

2012-05-23 Por tôpico Bruno Banfi
Milton, fiz dessa maneira porque não é possivel dar um Select na coluna e não 
colocar no group by.

Não posso fazer isso, da erro:

SELECT MAX(I.EST_DATA_ENTRADA) DATA_ENTRADA, I.EST_FK_EPI, I.EST_CUST_UND
from ESTOQUE as I
Group by I.EST_FK_EPI






 De: Milton Bastos Henriquis Jr. 
Para: oracle_br@yahoogrupos.com.br 
Enviadas: Quarta-feira, 23 de Maio de 2012 15:53
Assunto: Re: [oracle_br] Help no Script
 
Sim, vc fez errado!

Vc colorou o campo VALOR no group by.
É por isso que aparecem dois valores diferentes pro mesmo produto - foi vc
mesmo que mandou que ficasse assim.

Eu já imaginei que tivesse esse erro, por isso coloquei aquele comentário.

Se vc quer apenas da data mais recente, mande agrupas apenas pelo produto,
daí pegue a data mais recente usando o MAX, e por fim pegue o valor do
produto naquela data.





2012/5/23 Bruno Banfi 

> **
>
>
> Milton,
>
> Veja que no resultado aparece dois valores para o mesmo produto mas com
> datas diferentes:
>
>
> > 2011-09-28                        2                              0.65
> > 2012-05-16                        2                              0.69
>
> Na minha consulta precisa aparecer o valor do produto com a data mais
> recente. Nesse caso acima era para aparecer somente:
>
> 2012-05-16                        2                              0.69
>
> Não deu certo o que o Rafael sugeriu. Vou revisar para ver se estou
> fazendo alguma coisa errada.
>
> Obrigado pelo retorno.
>
> Bruno
>
> 
> De: Milton Bastos Henriquis Jr. 
> Para: oracle_br@yahoogrupos.com.br
> Enviadas: Quarta-feira, 23 de Maio de 2012 15:27
> Assunto: Re: [oracle_br] Help no Script
>
>
> Sobre a sugestão do Rafael, importante lembrar que:
> Se for usar rownum, tem que usar subselect também.
>
> Bruno: tenho quase certeza que vc não explicou corretamente o que vc
> realmente deseja.
>
> Essa query que vc passou, ela está CORRETA e vc deseja extrair essa
> informação dela?
> Ou ela está ERRADA e vc deseja corrigi-la?
>
> Se ela estiver correta, pra extrair exatamente o que vc descreveu, é
> fácil...
> Sem fazer muita alteração e usando a dica do Rafael:
>
> Select DATA_ENTRADA, EST_CUST_UND
> from (
> SELECT MAX(I.EST_DATA_ENTRADA) DATA_ENTRADA, I.EST_FK_EPI,I.EST_CUST_UND
> from ESTOQUE as I, EPI as H
> INNER JOIN ESTOQUE ON EST_FK_EPI = H.EPI_ID
> Group by I.EST_FK_EPI, I.EST_CUST_UND
> order by MAX(I.EST_DATA_ENTRADA))
> where rownum = 1;
>
> Mas tenho o leve pressentimento que não é isso que vc quer... que talvez vc
> queira refazer
> a query, mudar esse agrupamento, mas nesse caso só dá pra te ajudar se vc
> realmente explicar melhor.
>
> 2012/5/23 Rafael Vieira 
>
> > **
>
> >
> >
> > Tenta colocar a cláusula having fazendo uma condição data = max(data), pq
> > o having aceita um filtro com agrupamento, ou então, faria uma
> "gamb",order
> > by data desc  e colocaria um rownum = 1
> >
> > 
> > De: Bruno Banfi 
> > Para: "oracle_br@yahoogrupos.com.br" 
> > Enviadas: Quarta-feira, 23 de Maio de 2012 14:56
> > Assunto: [oracle_br] Help no Script
> >
> >
> >
> > Boa tarde a todos,
> >
> > Tenho o seguinte script:
> >
> > SELECT MAX(I.EST_DATA_ENTRADA) as 'DATA_ENTRADA',
> > I.EST_FK_EPI,I.EST_CUST_UND
> >            from ESTOQUE as I, EPI as H
> >            INNER JOIN ESTOQUE ON EST_FK_EPI = H.EPI_ID
> >            Group by I.EST_FK_EPI, I.EST_CUST_UND
> >            ORDER BY I.EST_FK_EPI
> >
> > Que da o seguinte resultado:
> >
> > EST_DATA_ENTRADA        EST_FK_EPI        EST_CUST_UND
> > 2012-03-28                        NULL                      23.00
> > 2011-09-28                        2                              0.65
> > 2012-05-16                        2                              0.69
> > 2012-05-16                        4                              1.55
> > 2011-09-28                        59                            3.05
> > 2011-10-27                        77                            3.75
> > 2012-02-17                        77                            3.05
> > 2011-09-30                        79                            2.25
> > 2012-02-17                        97                            2.25
> > 2011-09-30                        99                            22.14
> > 2011-09-30                        121                          7.56
> > 2011-09-30                        139                          46.00
> > 2012-02-17                        140                          

RE: [oracle_br] Help no Script

2012-05-23 Por tôpico Carlos Silva

Bruno, tenta uma subquery dentro da clausula WHERE.
At.

 

To: oracle_br@yahoogrupos.com.br
From: bruno.ba...@yahoo.com.br
Date: Wed, 23 May 2012 11:47:17 -0700
Subject: Re: [oracle_br] Help no Script
















 



  



  
  
  Milton, 



Veja que no resultado aparece dois valores para o mesmo produto mas com datas 
diferentes:



> 2011-09-282  0.65

> 2012-05-162  0.69 



Na minha consulta precisa aparecer o valor do produto com a data mais recente. 
Nesse caso acima era para aparecer somente:



2012-05-162  0.69  



Não deu certo o que o Rafael sugeriu. Vou revisar para ver se estou fazendo 
alguma coisa errada.



Obrigado pelo retorno.



Bruno





 De: Milton Bastos Henriquis Jr. 

Para: oracle_br@yahoogrupos.com.br 

Enviadas: Quarta-feira, 23 de Maio de 2012 15:27

Assunto: Re: [oracle_br] Help no Script

 

Sobre a sugestão do Rafael, importante lembrar que:

Se for usar rownum, tem que usar subselect também.



Bruno: tenho quase certeza que vc não explicou corretamente o que vc

realmente deseja.



Essa query que vc passou, ela está CORRETA e vc deseja extrair essa

informação dela?

Ou ela está ERRADA e vc deseja corrigi-la?



Se ela estiver correta, pra extrair exatamente o que vc descreveu, é

fácil...

Sem fazer muita alteração e usando a dica do Rafael:



Select DATA_ENTRADA, EST_CUST_UND

from (

SELECT MAX(I.EST_DATA_ENTRADA) DATA_ENTRADA, I.EST_FK_EPI,I.EST_CUST_UND

from ESTOQUE as I, EPI as H

INNER JOIN ESTOQUE ON EST_FK_EPI = H.EPI_ID

Group by I.EST_FK_EPI, I.EST_CUST_UND

order by MAX(I.EST_DATA_ENTRADA))

where rownum = 1;



Mas tenho o leve pressentimento que não é isso que vc quer... que talvez vc

queira refazer

a query, mudar esse agrupamento, mas nesse caso só dá pra te ajudar se vc

realmente explicar melhor.



2012/5/23 Rafael Vieira 



> **

>

>

> Tenta colocar a cláusula having fazendo uma condição data = max(data), pq

> o having aceita um filtro com agrupamento, ou então, faria uma "gamb",order

> by data desc  e colocaria um rownum = 1

>

> 

> De: Bruno Banfi 

> Para: "oracle_br@yahoogrupos.com.br" 

> Enviadas: Quarta-feira, 23 de Maio de 2012 14:56

> Assunto: [oracle_br] Help no Script

>

>

>

> Boa tarde a todos,

>

> Tenho o seguinte script:

>

> SELECT MAX(I.EST_DATA_ENTRADA) as 'DATA_ENTRADA',

> I.EST_FK_EPI,I.EST_CUST_UND

>from ESTOQUE as I, EPI as H

>INNER JOIN ESTOQUE ON EST_FK_EPI = H.EPI_ID

>Group by I.EST_FK_EPI, I.EST_CUST_UND

>ORDER BY I.EST_FK_EPI

>

> Que da o seguinte resultado:

>

> EST_DATA_ENTRADA EST_FK_EPI EST_CUST_UND

> 2012-03-28 NULL  23.00

> 2011-09-28 2  0.65

> 2012-05-16 2  0.69

> 2012-05-16 4  1.55

> 2011-09-2859 3.05

> 2011-10-2777 3.75

> 2012-02-1777 3.05

> 2011-09-3079 2.25

> 2012-02-1797 2.25

> 2011-09-3099 22.14

> 2011-09-30121   7.56

> 2011-09-30139   46.00

> 2012-02-17140   16.50

> 2012-02-17144   3.71

> 2011-09-30144   6.55

> 2012-05-16161   3.71

> 2011-09-30161   3.70

>

> O resultado que preciso trazer é o valor (EST_CUST_UND) com a data

> (EST_DATA_ENTRADA) mais recente.

>

> Muito obrigado,

>

> Bruno

>

> [As partes desta mensagem que não continham texto foram removidas]

>

> [As partes desta mensagem que não continham texto foram removidas]

>

>  

>



-- 

Att,



[As partes desta mensagem que não continham texto foram removidas]







--

>Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
>responsabilidade de seus remetentes.

Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br

Re: [oracle_br] Help no Script

2012-05-23 Por tôpico Milton Bastos Henriquis Jr.
Sim, vc fez errado!

Vc colorou o campo VALOR no group by.
É por isso que aparecem dois valores diferentes pro mesmo produto - foi vc
mesmo que mandou que ficasse assim.

Eu já imaginei que tivesse esse erro, por isso coloquei aquele comentário.

Se vc quer apenas da data mais recente, mande agrupas apenas pelo produto,
daí pegue a data mais recente usando o MAX, e por fim pegue o valor do
produto naquela data.





2012/5/23 Bruno Banfi 

> **
>
>
> Milton,
>
> Veja que no resultado aparece dois valores para o mesmo produto mas com
> datas diferentes:
>
>
> > 2011-09-282  0.65
> > 2012-05-162  0.69
>
> Na minha consulta precisa aparecer o valor do produto com a data mais
> recente. Nesse caso acima era para aparecer somente:
>
> 2012-05-162  0.69
>
> Não deu certo o que o Rafael sugeriu. Vou revisar para ver se estou
> fazendo alguma coisa errada.
>
> Obrigado pelo retorno.
>
> Bruno
>
> 
> De: Milton Bastos Henriquis Jr. 
> Para: oracle_br@yahoogrupos.com.br
> Enviadas: Quarta-feira, 23 de Maio de 2012 15:27
> Assunto: Re: [oracle_br] Help no Script
>
>
> Sobre a sugestão do Rafael, importante lembrar que:
> Se for usar rownum, tem que usar subselect também.
>
> Bruno: tenho quase certeza que vc não explicou corretamente o que vc
> realmente deseja.
>
> Essa query que vc passou, ela está CORRETA e vc deseja extrair essa
> informação dela?
> Ou ela está ERRADA e vc deseja corrigi-la?
>
> Se ela estiver correta, pra extrair exatamente o que vc descreveu, é
> fácil...
> Sem fazer muita alteração e usando a dica do Rafael:
>
> Select DATA_ENTRADA, EST_CUST_UND
> from (
> SELECT MAX(I.EST_DATA_ENTRADA) DATA_ENTRADA, I.EST_FK_EPI,I.EST_CUST_UND
> from ESTOQUE as I, EPI as H
> INNER JOIN ESTOQUE ON EST_FK_EPI = H.EPI_ID
> Group by I.EST_FK_EPI, I.EST_CUST_UND
> order by MAX(I.EST_DATA_ENTRADA))
> where rownum = 1;
>
> Mas tenho o leve pressentimento que não é isso que vc quer... que talvez vc
> queira refazer
> a query, mudar esse agrupamento, mas nesse caso só dá pra te ajudar se vc
> realmente explicar melhor.
>
> 2012/5/23 Rafael Vieira 
>
> > **
>
> >
> >
> > Tenta colocar a cláusula having fazendo uma condição data = max(data), pq
> > o having aceita um filtro com agrupamento, ou então, faria uma
> "gamb",order
> > by data desc  e colocaria um rownum = 1
> >
> > 
> > De: Bruno Banfi 
> > Para: "oracle_br@yahoogrupos.com.br" 
> > Enviadas: Quarta-feira, 23 de Maio de 2012 14:56
> > Assunto: [oracle_br] Help no Script
> >
> >
> >
> > Boa tarde a todos,
> >
> > Tenho o seguinte script:
> >
> > SELECT MAX(I.EST_DATA_ENTRADA) as 'DATA_ENTRADA',
> > I.EST_FK_EPI,I.EST_CUST_UND
> >from ESTOQUE as I, EPI as H
> >INNER JOIN ESTOQUE ON EST_FK_EPI = H.EPI_ID
> >Group by I.EST_FK_EPI, I.EST_CUST_UND
> >ORDER BY I.EST_FK_EPI
> >
> > Que da o seguinte resultado:
> >
> > EST_DATA_ENTRADAEST_FK_EPIEST_CUST_UND
> > 2012-03-28NULL  23.00
> > 2011-09-282  0.65
> > 2012-05-162  0.69
> > 2012-05-164  1.55
> > 2011-09-28593.05
> > 2011-10-27773.75
> > 2012-02-17773.05
> > 2011-09-30792.25
> > 2012-02-17972.25
> > 2011-09-309922.14
> > 2011-09-30121  7.56
> > 2011-09-30139  46.00
> > 2012-02-17140  16.50
> > 2012-02-17144  3.71
> > 2011-09-30144  6.55
> > 2012-05-16161  3.71
> > 2011-09-30161  3.70
> >
> > O resultado que preciso trazer é o valor (EST_CUST_UND) com a data
> > (EST_DATA_ENTRADA) mais recente.

Re: [oracle_br] Help no Script

2012-05-23 Por tôpico Bruno Banfi
Milton, 

Veja que no resultado aparece dois valores para o mesmo produto mas com datas 
diferentes:

> 2011-09-28                        2                              0.65
> 2012-05-16                        2                              0.69 


Na minha consulta precisa aparecer o valor do produto com a data mais recente. 
Nesse caso acima era para aparecer somente:

2012-05-16                        2                              0.69  


Não deu certo o que o Rafael sugeriu. Vou revisar para ver se estou fazendo 
alguma coisa errada.

Obrigado pelo retorno.

Bruno



 De: Milton Bastos Henriquis Jr. 
Para: oracle_br@yahoogrupos.com.br 
Enviadas: Quarta-feira, 23 de Maio de 2012 15:27
Assunto: Re: [oracle_br] Help no Script
 
Sobre a sugestão do Rafael, importante lembrar que:
Se for usar rownum, tem que usar subselect também.

Bruno: tenho quase certeza que vc não explicou corretamente o que vc
realmente deseja.

Essa query que vc passou, ela está CORRETA e vc deseja extrair essa
informação dela?
Ou ela está ERRADA e vc deseja corrigi-la?

Se ela estiver correta, pra extrair exatamente o que vc descreveu, é
fácil...
Sem fazer muita alteração e usando a dica do Rafael:


Select DATA_ENTRADA, EST_CUST_UND
from (
SELECT MAX(I.EST_DATA_ENTRADA) DATA_ENTRADA, I.EST_FK_EPI,I.EST_CUST_UND
from ESTOQUE as I, EPI as H
INNER JOIN ESTOQUE ON EST_FK_EPI = H.EPI_ID
Group by I.EST_FK_EPI, I.EST_CUST_UND
order by MAX(I.EST_DATA_ENTRADA))
where rownum = 1;


Mas tenho o leve pressentimento que não é isso que vc quer... que talvez vc
queira refazer
a query, mudar esse agrupamento, mas nesse caso só dá pra te ajudar se vc
realmente explicar melhor.







2012/5/23 Rafael Vieira 

> **
>
>
> Tenta colocar a cláusula having fazendo uma condição data = max(data), pq
> o having aceita um filtro com agrupamento, ou então, faria uma "gamb",order
> by data desc  e colocaria um rownum = 1
>
> 
> De: Bruno Banfi 
> Para: "oracle_br@yahoogrupos.com.br" 
> Enviadas: Quarta-feira, 23 de Maio de 2012 14:56
> Assunto: [oracle_br] Help no Script
>
>
>
> Boa tarde a todos,
>
> Tenho o seguinte script:
>
> SELECT MAX(I.EST_DATA_ENTRADA) as 'DATA_ENTRADA',
> I.EST_FK_EPI,I.EST_CUST_UND
>            from ESTOQUE as I, EPI as H
>            INNER JOIN ESTOQUE ON EST_FK_EPI = H.EPI_ID
>            Group by I.EST_FK_EPI, I.EST_CUST_UND
>            ORDER BY I.EST_FK_EPI
>
> Que da o seguinte resultado:
>
> EST_DATA_ENTRADA         EST_FK_EPI         EST_CUST_UND
> 2012-03-28                         NULL                      23.00
> 2011-09-28                         2                              0.65
> 2012-05-16                         2                              0.69
> 2012-05-16                         4                              1.55
> 2011-09-28                        59                             3.05
> 2011-10-27                        77                             3.75
> 2012-02-17                        77                             3.05
> 2011-09-30                        79                             2.25
> 2012-02-17                        97                             2.25
> 2011-09-30                        99                             22.14
> 2011-09-30                        121                           7.56
> 2011-09-30                        139                           46.00
> 2012-02-17                        140                           16.50
> 2012-02-17                        144                           3.71
> 2011-09-30                        144                           6.55
> 2012-05-16                        161                           3.71
> 2011-09-30                        161                           3.70
>
> O resultado que preciso trazer é o valor (EST_CUST_UND) com a data
> (EST_DATA_ENTRADA) mais recente.
>
> Muito obrigado,
>
> Bruno
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
Att,


[As partes desta mensagem que não continham texto foram removidas]





--
>Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
>responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
>Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
>Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
>http://www.oraclebr.com.br/  

 Links do Yahoo! Grupos

[As partes desta mensagem que não continham texto foram removidas]



RE: [oracle_br] Help no Script

2012-05-23 Por tôpico Carlos Silva

 Boa tarde, Bruno!
Você pode tentar também um subquery com o meu exemplo abaixo, para otimizá-la 
ainda mais você pode colar chaves primarias de ligações na subquery como não 
conheceu a tabela só posso chegar até aqui.
SELECT I.EST_DATA_ENTRADA,I.EST_FK_EPI,   I.EST_CUST_UNDfrom   
ESTOQUE as I,EPI as HINNER JOIN ESTOQUE ON EST_FK_EPI = H.EPI_IDwhere 
I.EST_DATA_ENTRADA =(SELECT max(aux.EST_DATA_ENTRADA)   
from   ESTOQUE aux)Group by I.EST_FK_EPI, I.EST_CUST_UNDORDER BY I.EST_FK_EPI

  
 

To: oracle_br@yahoogrupos.com.br
From: vieira.rafae...@yahoo.com.br
Date: Wed, 23 May 2012 11:17:31 -0700
Subject: Re: [oracle_br] Help no Script
















 



  



  
  
  Tenta colocar a cláusula having fazendo uma condição data = max(data), pq 
o having aceita um filtro com agrupamento, ou então, faria uma "gamb",order by 
data desc  e colocaria um rownum = 1 





 De: Bruno Banfi 

Para: "oracle_br@yahoogrupos.com.br"  

Enviadas: Quarta-feira, 23 de Maio de 2012 14:56

Assunto: [oracle_br] Help no Script

 



  

Boa tarde a todos,



Tenho o seguinte script:



SELECT MAX(I.EST_DATA_ENTRADA) as 'DATA_ENTRADA', I.EST_FK_EPI,I.EST_CUST_UND

   from ESTOQUE as I, EPI as H

   INNER JOIN ESTOQUE ON EST_FK_EPI = H.EPI_ID

   Group by I.EST_FK_EPI, I.EST_CUST_UND

   ORDER BY I.EST_FK_EPI



Que da o seguinte resultado:



EST_DATA_ENTRADA EST_FK_EPI EST_CUST_UND

2012-03-28 NULL  23.00

2011-09-28 2  0.65

2012-05-16 2  0.69

2012-05-16 4  1.55

2011-09-2859 3.05

2011-10-2777 3.75

2012-02-1777 3.05

2011-09-3079 2.25

2012-02-1797 2.25

2011-09-3099 22.14

2011-09-30121   7.56

2011-09-30139   46.00

2012-02-17140   16.50

2012-02-17144   3.71

2011-09-30144   6.55

2012-05-16161   3.71

2011-09-30161   3.70



O resultado que preciso trazer é o valor (EST_CUST_UND) com a data 
(EST_DATA_ENTRADA) mais recente.



Muito obrigado,



Bruno



[As partes desta mensagem que não continham texto foram removidas]



[As partes desta mensagem que não continham texto foram removidas]






 









  

[As partes desta mensagem que não continham texto foram removidas]





--
>Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
>responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
>Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
>Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
>http://www.oraclebr.com.br/  

 Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
oracle_br-unsubscr...@yahoogrupos.com.br

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




Re: [oracle_br] Help no Script

2012-05-23 Por tôpico Milton Bastos Henriquis Jr.
Sobre a sugestão do Rafael, importante lembrar que:
Se for usar rownum, tem que usar subselect também.

Bruno: tenho quase certeza que vc não explicou corretamente o que vc
realmente deseja.

Essa query que vc passou, ela está CORRETA e vc deseja extrair essa
informação dela?
Ou ela está ERRADA e vc deseja corrigi-la?

Se ela estiver correta, pra extrair exatamente o que vc descreveu, é
fácil...
Sem fazer muita alteração e usando a dica do Rafael:


Select DATA_ENTRADA, EST_CUST_UND
from (
SELECT MAX(I.EST_DATA_ENTRADA) DATA_ENTRADA, I.EST_FK_EPI,I.EST_CUST_UND
from ESTOQUE as I, EPI as H
INNER JOIN ESTOQUE ON EST_FK_EPI = H.EPI_ID
Group by I.EST_FK_EPI, I.EST_CUST_UND
order by MAX(I.EST_DATA_ENTRADA))
where rownum = 1;


Mas tenho o leve pressentimento que não é isso que vc quer... que talvez vc
queira refazer
a query, mudar esse agrupamento, mas nesse caso só dá pra te ajudar se vc
realmente explicar melhor.







2012/5/23 Rafael Vieira 

> **
>
>
> Tenta colocar a cláusula having fazendo uma condição data = max(data), pq
> o having aceita um filtro com agrupamento, ou então, faria uma "gamb",order
> by data desc  e colocaria um rownum = 1
>
> 
> De: Bruno Banfi 
> Para: "oracle_br@yahoogrupos.com.br" 
> Enviadas: Quarta-feira, 23 de Maio de 2012 14:56
> Assunto: [oracle_br] Help no Script
>
>
>
> Boa tarde a todos,
>
> Tenho o seguinte script:
>
> SELECT MAX(I.EST_DATA_ENTRADA) as 'DATA_ENTRADA',
> I.EST_FK_EPI,I.EST_CUST_UND
>from ESTOQUE as I, EPI as H
>INNER JOIN ESTOQUE ON EST_FK_EPI = H.EPI_ID
>Group by I.EST_FK_EPI, I.EST_CUST_UND
>ORDER BY I.EST_FK_EPI
>
> Que da o seguinte resultado:
>
> EST_DATA_ENTRADA EST_FK_EPI EST_CUST_UND
> 2012-03-28 NULL  23.00
> 2011-09-28 2  0.65
> 2012-05-16 2  0.69
> 2012-05-16 4  1.55
> 2011-09-2859 3.05
> 2011-10-2777 3.75
> 2012-02-1777 3.05
> 2011-09-3079 2.25
> 2012-02-1797 2.25
> 2011-09-3099 22.14
> 2011-09-30121   7.56
> 2011-09-30139   46.00
> 2012-02-17140   16.50
> 2012-02-17144   3.71
> 2011-09-30144   6.55
> 2012-05-16161   3.71
> 2011-09-30161   3.70
>
> O resultado que preciso trazer é o valor (EST_CUST_UND) com a data
> (EST_DATA_ENTRADA) mais recente.
>
> Muito obrigado,
>
> Bruno
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
Att,


[As partes desta mensagem que não continham texto foram removidas]





--
>Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
>responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
>Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
>Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
>http://www.oraclebr.com.br/  

 Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
oracle_br-unsubscr...@yahoogrupos.com.br

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




Re: [oracle_br] Help no Script

2012-05-23 Por tôpico Rafael Vieira
Tenta colocar a cláusula having fazendo uma condição data = max(data), pq o 
having aceita um filtro com agrupamento, ou então, faria uma "gamb",order by 
data desc  e colocaria um rownum = 1 





 De: Bruno Banfi 
Para: "oracle_br@yahoogrupos.com.br"  
Enviadas: Quarta-feira, 23 de Maio de 2012 14:56
Assunto: [oracle_br] Help no Script
 

  
Boa tarde a todos,

Tenho o seguinte script:

SELECT MAX(I.EST_DATA_ENTRADA) as 'DATA_ENTRADA', I.EST_FK_EPI,I.EST_CUST_UND
           from ESTOQUE as I, EPI as H
           INNER JOIN ESTOQUE ON EST_FK_EPI = H.EPI_ID
           Group by I.EST_FK_EPI, I.EST_CUST_UND
           ORDER BY I.EST_FK_EPI

Que da o seguinte resultado:

EST_DATA_ENTRADA         EST_FK_EPI         EST_CUST_UND
2012-03-28                         NULL                      23.00
2011-09-28                         2                              0.65
2012-05-16                         2                              0.69
2012-05-16                         4                              1.55
2011-09-28                        59                             3.05
2011-10-27                        77                             3.75
2012-02-17                        77                             3.05
2011-09-30                        79                             2.25
2012-02-17                        97                             2.25
2011-09-30                        99                             22.14
2011-09-30                        121                           7.56
2011-09-30                        139                           46.00
2012-02-17                        140                           16.50
2012-02-17                        144                           3.71
2011-09-30                        144                           6.55
2012-05-16                        161                           3.71
2011-09-30                        161                           3.70

O resultado que preciso trazer é o valor (EST_CUST_UND) com a data 
(EST_DATA_ENTRADA) mais recente.

Muito obrigado,

Bruno

[As partes desta mensagem que não continham texto foram removidas]


 

[As partes desta mensagem que não continham texto foram removidas]