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.
|
|
|
|
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?
|
|
|
|
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
|
|
|