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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Novamente SQL
Irenko
BELO HORIZONTE
MG - BRASIL
Postada em 07/06/2004 12:07 hs            
Bom gente, fui obrigado a mudar meu banco geral. Agora tenho somente uma tabela para movimentação de estoque, sendo:
 
Tabela DADOS
Campos:
Codigo - Quant - Status
O campo Status posicionei como (E)Entrada (S)Saida
Para listar somar e agrupar os codigos que houve saida, usei a instrução abaixo, funcionou.
Set Tbbaixas = BdBaixas.OpenRecordset("SELECT Codigo, Sum(Quant) AS TOTAL FROM Dados Where Status='S' GROUP BY CODIGO ", dbOpenSnapshot)
 
Agora preciso listar as entradas comparando os codigos, ou seja, listar somente se igual ao codigo de saida.Como faço?
 
Outro problema, preciso tambem listar a descrição do material, porém essa descrição esta em outra tabela, usei dessa forma:
Set TbPva = BdBaixas.OpenRecordset("SELECT DISTINCT Dados.Codigo,Localizacao.[Descrição]FROM Dados,Localizacao WHERE Localizacao.[Código]=Dados.Codigo", dbOpenSnapshot)
A instrução lista tudo, quero listar somente as com Status (S). Alguma sugestão?
     
Rochª
Pontos: 2843 Pontos: 2843 Pontos: 2843
RIO DE JANEIRO
RJ - BRASIL
Postada em 07/06/2004 12:32 hs            
Não sei se voce quer as entradas ou saidas. Este exemplo tem as entradas
 
Set Tbbaixas = BdBaixas.OpenRecordset("SELECT * FROM Dados
Where Status='E'  and dados.codigo = " & txt_codigo_digitado , dbOpenSnapshot)
onde txt_codigo_digitado tem o produto que voce quer
 
para pegar a descricao do produto
Set Tbbaixas = BdBaixas.OpenRecordset("SELECT * FROM Dados, produto
Where Status='E'  and dados.codigo = " & txt_codigo_digitado & " and dados.codigo = produto.codigo", dbOpenSnapshot)
 
Observe que voce tem que colocar o arquivo no inicio do campo para ele saber qual esta se referenciando.
Este metodo não é muito bom pois se não existir um produto no cadastro de produto e esteja lancado no DADOS ele não sera exibido.
 
Voce tambem pode usar com JOIN para resolver isso
 
Set Tbbaixas = BdBaixas.OpenRecordset("SELECT * FROM Dados, produto,
dados left join produto on  produto.codigo = dados.codigo Where Status='E'  and dados.codigo = " & txt_codigo_digitado , dbOpenSnapshot)
Mostra as entradas de um produdo e pega a descricao na tabela de produto com um join.
 
Se quizer tenho apostilas de SQL que podem te ajudar.

__________________________________________________________________________
Qualquer coisa post
 
Emoções
Rochª
     
Irenko
BELO HORIZONTE
MG - BRASIL
Postada em 08/06/2004 12:58 hs            
Ok! montei a listagem de descrição. Agora meu problema e a listagem de Entrada.
 
Usei á instrução abaixo para listar as saídas:
Set Tbbaixas = BdBaixas.OpenRecordset("SELECT Codigo, Sum(Quant) AS TOTAL FROM Dados Where Status='S' GROUP BY CODIGO", dbOpenSnapshot)
 
Usei a instrução abaixo para listar as entradas:
Set TbEntrada = BdBaixas.OpenRecordset("SELECT Codigo, Sum(Quant) AS sEntrada FROM Dados Where Status='E' GROUP BY CODIGO", dbOpenSnapshot)
 
nesta instrução preciso listar as entradas somente se houve saida. Como posso adapta-la?
     
Irenko
BELO HORIZONTE
MG - BRASIL
Postada em 09/06/2004 11:15 hs            
Vou tentar dar um exemplo mais claro do que eu quero fazer:
 
Set TbIn = BdBaixas.OpenRecordset("SELECT DISTINCT Dados.Codigo, Inicial.QT FROM Dados,Inicial WHERE Inicial.Codigo=Dados.Codigo AND Dados.Status='S'", dbOpenSnapshot)
 
A instrução acima eu carreguei o estoque inicial comparando o codigo da tabela Inicial com o da tabela Dados juntamente com o Status que 'S' (saida), carregou normalmente porque são tabelas diferentes. Agora para a instrução abaixo, preciso carregar as entradas comparando o codigo de material e o Status de uma so tabela que é Dados. Do jeito que ela esta, carrega todas as entradas so que quero que carregue somente as entradas dos codigos que tiveram saidas comparando 'S' (saida) com 'E' (entrada). É possível?
 
Set TbEntrada = BdBaixas.OpenRecordset("SELECT Codigo,Sum(Quant) AS sEntrada FROM Dados Where Status='E' GROUP BY CODIGO", dbOpenSnapshot)
     
Página(s): 1/1    

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