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

 

  Fórum

  Visual Basic
 
Voltar
Autor Assunto:  Ajuda em consulta Sql. Pelo amor de Deus!!!!
Irenko
BELO HORIZONTE
MG - BRASIL
Postada em 04/06/2004 09:03 hs            
Set TbEntrada1 = BdBaixas.OpenRecordset("SELECT Codigo1,sum(Entrada)AS sEntrada FROM Adiciona GROUP BY Codigo1", dbOpenSnapshot)
Gente, não aquento mais pensar em uma coisa que não sei fazer direito. Por favor me de uma mão nessa.
Com a instrução acima seleciono o campo somo e agrupo. Esta dando certo. Agora eu preciso comparar com outra tabela, ou seja, se o codigo selecionado na tabela Adiciona existir na tabela Baixa ele vai mostrar somente se existir caso contrario retorna NADA. Tentei isso:
Set TbEntrada1 = BdBaixas.OpenRecordset("SELECT Baixas.Codigo,Codigo1,sum(Entrada)AS sEntrada FROM Adiciona,Baixas WHERE Adiciona.Codigo1=Baixas.Codigo GROUP BY Baixas.Codigo,Adiciona.Codigo1", dbOpenSnapshot)
Funciona parcialmente pois efetua a soma incorretamente, exemplo:
Dei entrada no seguinte cod.:
000434      18 pc
000434        8 pc
000434    100 pc
000434  1800 pc
Total      1926 pc
Com a primeira Sql ela mostra as 1926 pc, ja na segunda onde deveria fazer a comparação entre as tabela, ela mostra 7704 pc, ou seja, esta multiplicando pela quant. de entradas do item que é 4 vezes. Alguem pode ajudar a montar essa SQL corretamente?
     
Semmer
CURITIBA
PR - BRASIL
ENUNCIADA !
Postada em 04/06/2004 09:17 hs            
Quantos registros tem na tabela baixas com o codigo = 000434 ? Se forme 4 então vai mostrar 4 baixas x 4 adiciona = 16 registros.... Neste caso, é melhor usar uma instruçao where diferente:
"select codigo1, sum(entrada) as sentrada from adiciona where codigo1 in (select distinct codigo from baixas)"
   
Irenko
BELO HORIZONTE
MG - BRASIL
Postada em 04/06/2004 09:53 hs            
TbEntrada1 = BdBaixas.OpenRecordset"SELECT codigo1,sum(Entrada)AS sEntrada FROM Adiciona Where codigo1 In(Select distinct codigo FROM Baixas"), dbOpenSnapshot)
 
Como posiciono os parenteses nessa sql? ta dando erro.
     
Semmer
CURITIBA
PR - BRASIL
Postada em 04/06/2004 10:11 hs            
 
set TbEntrada1 = BdBaixas.OpenRecordset("SELECT codigo1, sum(Entrada) AS sEntrada FROM Adiciona Where codigo1 In (Select distinct codigo FROM Baixas) group by codigo1", dbOpenSnapshot)
 
     
Irenko
BELO HORIZONTE
MG - BRASIL
Postada em 04/06/2004 10:26 hs            
Semmer, sua sugestão valeu. Agora esta mostrando as quant. corretamente,so que preciso mostrar a quant. de 0 se nao tiver efetuado nenhuma entrada em um determinado cod. da tabela Baixa, exemplo:
Cod.                Entrada
000382                0
000434             1926
 
Acho que fica ao contrario, sendo que 000382 não esta na tabela Adiciona. Tem jeito?
     
Semmer
CURITIBA
PR - BRASIL
Postada em 04/06/2004 10:40 hs            
Irenko, deixa eu entender melhor a estrutura das suas tabelas. O que é a tabela baixas e o que é a tabela adiciona? A tabela baixa tem apenas um registro de cada codigo e a adiciona poder ter vários ou nenhum? Mostra os registros das duas onde os codigos são 000434 e 000382 pra eu entender melhor. Assim fica mais fácil pra eu te ajudar.

...Antes de responder testa a instrução abaixo e veja no que dá:
select codigo, sum(entrada) as sentrada from baixas left join adiciona on baixas.codigo = adiciona.codigo1 group by codigo
... se der certo para o 000434, o 000382 vai ter sentrada como nulo
     
Página(s): 1/2     1 | 2 |   PRÓXIMA »

CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página
 
 Home
 Artigos
 Cadastro
 Visual Basic
 Visual Basic .Net
 ASP
 ActiveX
 Apostilas
 Fóruns
 Utilitários
 Parceiros
 Hospedagem