CONSULTA EM DUAS TABELAS

RODRIGOLOKO 26/03/2012 09:28:52
#398260
Bom dia amigos,
Tenho duas tabelas
Caixa - entrada de valor de cada consultora
CodCons
Valor
SaiData

TabContatos - tabela das consultoras
CodiCont
NomeCont

Gostaria se somar o valor total de cada consultora num período da tabela caixa e apresentar no relatório
procurei na internet exemplos e não consigo montar quando coloco a opção sum no valor do caixa

strSql = [Ô]SELECT tabcontatos.NomeCont, [Ô]
strSql = strSql & [Ô]sum(caixa.valor) [Ô]

strSql = strSql & [Ô]FROM Caixa inner JOIN [Ô]
strSql = strSql & [Ô]tabcontatos ON caixa.codcons= [Ô]
strSql = strSql & [Ô]tabcontatos.codicont [Ô]
strSql = strSql & [Ô]WHERE caixa.SaiData BETWEEN #[Ô] & Format$(entrada, [Ô]mm/dd/yyyy[Ô]) & [Ô]# AND #[Ô] & Format$(dtSaida, [Ô]mm/dd/yyyy[Ô]) & [Ô]# [Ô]
strSql = strSql & [Ô]GROUP BY caixa.codcons[Ô]
strSql = strSql & [Ô]ORDER BY sum(caixa.valor) asc;[Ô]

tentei de diversas formas tirando o group, retirando a ordem. Dá certo quando eu tiro a opção sum do caixa valor. Ele encontra todos os valores da consultora na tabela caixa mas gostaria de somar estes valores. Alguém tem alguma idéia de como posso fazer ou o que eu fiz de errado no programa acima?

grato,
Rodrigo
LUIZCOMINO 26/03/2012 09:42:00
#398262
strSql = [Ô]SELECT tabcontatos.NomeCont, [Ô]
strSql = strSql & [Ô]sum(caixa.valor) as Total [Ô]

strSql = strSql & [Ô] FROM Caixa inner JOIN [Ô]
strSql = strSql & [Ô] tabcontatos ON caixa.codcons= [Ô]
strSql = strSql & [Ô] tabcontatos.codicont [Ô]
strSql = strSql & [Ô] WHERE caixa.SaiData BETWEEN #[Ô] & Format$(entrada, [Ô]mm/dd/yyyy[Ô]) & [Ô]# AND #[Ô] & Format$(dtSaida, [Ô]mm/dd/yyyy[Ô]) & [Ô]# [Ô]
strSql = strSql & [Ô] GROUP BY tabcontatos.NomeCont [Ô]
strSql = strSql & [Ô] ORDER BY Total asc;[Ô]
MARCONDES 26/03/2012 09:47:38
#398265
SELECT TabContatos.NomeCont, Sum(Caixa.Valor) AS SumOfValor
FROM Caixa INNER JOIN TabContatos ON Caixa.CodCons = TabContatos.CodICont
GROUP BY Caixa.SaiData, TabContatos.NomeCont
HAVING (((Caixa.SaiData)>=#1/1/2012#<=#1/1/2012#));

Lembrando também que a consulta BETWEEN é um pouco mais lenta do que usar >=
RODRIGOLOKO 27/03/2012 01:22:21
#398368
Citação:

:
strSql = [Ô]SELECT tabcontatos.NomeCont, [Ô]
strSql = strSql & [Ô]sum(caixa.valor) as Total [Ô]

strSql = strSql & [Ô] FROM Caixa inner JOIN [Ô]
strSql = strSql & [Ô] tabcontatos ON caixa.codcons= [Ô]
strSql = strSql & [Ô] tabcontatos.codicont [Ô]
strSql = strSql & [Ô] WHERE caixa.SaiData BETWEEN #[Ô] & Format$(entrada, [Ô]mm/dd/yyyy[Ô]) & [Ô]# AND #[Ô] & Format$(dtSaida, [Ô]mm/dd/yyyy[Ô]) & [Ô]# [Ô]
strSql = strSql & [Ô] GROUP BY tabcontatos.NomeCont [Ô]
strSql = strSql & [Ô] ORDER BY Total asc;[Ô]



obrigado pela respota mas está aparecendo um erro [Ô]Nenhum valor fornecido para um ou mais parâmetros necessários[Ô]
RODRIGOLOKO 27/03/2012 01:25:48
#398369
Citação:

:
SELECT TabContatos.NomeCont, Sum(Caixa.Valor) AS SumOfValor
FROM Caixa INNER JOIN TabContatos ON Caixa.CodCons = TabContatos.CodICont
GROUP BY Caixa.SaiData, TabContatos.NomeCont
HAVING (((Caixa.SaiData)>=#1/1/2012#<=#1/1/2012#));

Lembrando também que a consulta BETWEEN é um pouco mais lenta do que usar >=



Natanael, funcionou mais só agrupou os valores.

usei o strSql = [Ô]SELECT Caixa.CodCons, SUM(Caixa.Valor ) AS OrderTotal From [Caixa] GROUP BY Caixa.CodCons ORDER BY SUM(Caixa.Valor ) asc;[Ô]

e somou os valores da tabela mas no relatório mostra o codigo da consultora e o valor total o que ficou correto mas ta faltando mostrar o nome dela que se encontra na outra
tabela. Teria outra sugestão?
OMAR2011 27/03/2012 09:37:11
#398382
Vamos dar um empurrão.
Você vai criar um outro campo na Tabela Caixa,
sendo ele [Ô]Caixa.CodCont[Ô].Faz um relacionamento
entre ele e o TabContatos.CodiCont.
Neste campo é onde vai ficar registrados o codicont da
tabela TabContatos.Todo novo registro que for incluido
na tabela caixa,tem que ter incluido o CodiCont da tabela Tabcontatos
no campo Caixa.CodCont.

strSql = [Ô]Select Caixa.Codcont,TabContatos.NomeCont,Caixa.Saidata,Sum(valor)as total from Caixa,TabContatos Where
caixa.codcont= tabcontatos.codicont Group by Codcont,TabContatos.NomeCont,saidata[Ô]

Tente assim e melhore.
Valeu.
RODRIGOLOKO 27/03/2012 12:30:49
#398399
Citação:

:
Vamos dar um empurrão.
Você vai criar um outro campo na Tabela Caixa,
sendo ele [Ô]Caixa.CodCont[Ô].Faz um relacionamento
entre ele e o TabContatos.CodiCont.
Neste campo é onde vai ficar registrados o codicont da
tabela TabContatos.Todo novo registro que for incluido
na tabela caixa,tem que ter incluido o CodiCont da tabela Tabcontatos
no campo Caixa.CodCont.

strSql = [Ô]Select Caixa.Codcont,TabContatos.NomeCont,Caixa.Saidata,Sum(valor)as total from Caixa,TabContatos Where
caixa.codcont= tabcontatos.codicont Group by Codcont,TabContatos.NomeCont,saidata[Ô]

dei uma modificada usando o campo que são iguais entre as duas tabelas

strSql = [Ô]Select Caixa.Codcons,TabContatos.NomeCont,Caixa.Saidata,Sum(valor)as total from Caixa,TabContatos Where caixa.codcons= tabcontatos.codicont Group by Codcons,TabContatos.NomeCont,saidata[Ô]

melhorou bastante mas ainda não está fazendo a soma dos valores por cada consultora

Tente assim e melhore.
Valeu.



obrigado pela ajuda
o campo código já existe na tabela caixa coloquei o código que enviou e ainda da esse erro [Ô]
[Ô]Nenhum valor fornecido para um ou mais parâmetros necessários[Ô][Ô]
OMAR2011 27/03/2012 14:11:33
#398408
Cara,esse Caixa.Codcons que você fala e o indíce da Tabela.Não funciona.Cria o campo que falei
e faça com escrevi.
Rodrigo eu fiz o teste aqui com os mesmos código que tu escreveu e da certo, porém tem que criar
este referido campo.Falo para você porque a birosca que eu tinha,registrava todas as notas fiscais
em uma tabela e a imagem da nota fiscal.Quando abria o formulário aparecia Número da nota,data,
valor total da nota e nome da nota.Quando dava um click na linha da nota desejada,aparecia um outro
formulario com imagem da notafical e todos os itens dela.
Do mesmo jeito que você quer eu fazia.
Valeu.
OMAR2011 27/03/2012 14:28:02
#398409
Resposta escolhida
Mandei um exemplo para seu Email.
Verifique
RODRIGOLOKO 27/03/2012 14:47:08
#398410
Citação:

:
Mandei um exemplo para seu Email.
Verifique



obrigado pelo exemplo enviado.
vou dar uma olhada aqui.
Tópico encerrado , respostas não são mais permitidas