USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  select max (inventario)
jvlsm
SANTA MARIA
RS - BRASIL
ENUNCIADA !
Postada em 25/05/2006 10:57 hs            
Caros Colegas,
 
Estou tentando fazer uma query para selecionar o ultimo item de entrada do estoque
para eu pegar seus respectivos valores de entrada....
 
select max(n.idnota),i.vtot,i.qtde,i.icms from notas as n inner join notasitens as i
on i.idnota = n.idnota where n.operacao = 'entrada' group by n.idnota;
 
O problema e que a query ate esta trazendo a ultima nota, porem os dados
do item vem diferente do correto.... tipo assim:
 
idnota   nome produto     qtde
1         produto A           10
2         produto B           20
3         produto C           30
4         produto C           18
5         produto A           15
 
a query esta retornando
 
2        produto B         20
4        produto C         30
5        produto A         10
 
do produto B ate esta correto pq so tem uma nota, mas dos outros traz os demais
campos (como qtde por exemplo) de uma nota anterior, traz o max(idnota) mas
os demais campos vem errados, vem de notas anteriores....
 
desde ja agradeco pelas ajudas...
 

Juliano V. Londero
jvlsm@terra.com.br
   
Ex-FatBoy
Pontos: 2843 Pontos: 2843
LONDRINA
PR - BRASIL
ENUNCIADA !
Postada em 25/05/2006 13:09 hs            
Caro amigo vc terá que montar um recordset do max no cabeçado da nota e apartir dai recuperar os dados do item da nota , pq em um só select vc nao vai conseguir o que quer.
Outra se vc que a ultima nota de cada produto o certo é fazer o max a partir da data nao do ID
Agora tb outra coisa que da para faze é um select que retorne todos os produto e pesquisar qual é o ultima entrada do produto em questao
Olha abri sua tabela e fiz este select
select max(a.id),a.produto
from teste a, teste b
where
a.produto=b.produto
group by a.produto
acessei 2 vezes a mesma tabela
Espero ter ajudado
   
LCRamos
Pontos: 2843
GOIANIA
GO - BRASIL
ENUNCIADA !
Postada em 25/05/2006 18:17 hs            
Ex-fatBoy, tem razão, mas se voce quer retornar todos os registros com Inner, voce tem que especificar, tente assim:
 
select max(n.idnota),i.vtot,i.qtde,i.icms from notas as n right join as i on notasitens.idnota = n.idnota where n.operacao = 'entrada' group by n.idnota;
 
Substituindo o inner por right, retorna todos os registros da tabela da direita, left os da esquerda, e inner somente os registros com registro correspondente, a direita, refaça sua consulta usando o right.
 
vlu//
   
Martini
Pontos: 2843 Pontos: 2843
PAROBÉ
RS - BRASIL
ENUNCIADA !
Postada em 26/05/2006 13:15 hs         
tenta assim:
 
create table #notas
  (
   idnota integer,
   produto varchar(10),
   quantidade integer
  )
set nocount on
-- 1         produto A           10
-- 2         produto B           20
-- 3         produto C           30
-- 4         produto C           18
-- 5         produto A           15
 
insert into #notas (idnota, produto, quantidade) values  (1, 'produto A', 10)
insert into #notas (idnota, produto, quantidade) values  (2, 'produto B', 20)
insert into #notas (idnota, produto, quantidade) values  (3, 'produto C', 30)
insert into #notas (idnota, produto, quantidade) values  (4, 'produto C', 18)
insert into #notas (idnota, produto, quantidade) values  (5, 'produto A', 15)
Select a.produto, a.idnota, quantidade
From
(
 select produto, max(idnota) idnota
 from #notas
 group by produto
)a inner join #notas on a.idnota = #notas.idnota
drop table #notas
   
andré
não registrado
ENUNCIADA !
Postada em 28/05/2006 23:10 hs   
tente assim
 
select max(n.idnota),i.vtot,i.qtde,i.icms from notas as n inner join notasitens as i
on i.idnota = n.idnota where n.operacao = 'entrada' group by n.idnota order by n.idnota
   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2021   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página