Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

webmaster2

Montar uma string SQL

Recommended Posts

Pessoal, boa tarde!

 

Tenho duas tabelas, uma de clientes e outra de depósitos. Na tabela de depósitos, são cadastrados todos os depósitos efetuados para os clientes.

 

CLIENTES

CLICOD

CLINOME

CLIENDERECO

 

DEPOSITOS

DEPCOD

DEPCODCLI

DEPDATA

DEPVALORDEPOSITADO

 

Até aí tudo bem, mas agora vem o desafio: preciso montar uma SELECT para mostrar todos os clientes que receberam menos de 100 reais no período entre 12/01/2007 e 12/02/2007. E ainda mostrar quanto receberam no período.

 

Eu cheguei a fazer uma SELECT, mas a que eu fiz não mostra os clientes que não receberam nada. Segue aí a que eu fiz:

 

SELECT c.clicod, c.clinome, d.conta FROM clientes AS c LEFT JOIN (SELECT DISTINCTROW depcodcli, SUM(depvalordepositado) AS conta FROM depositos WHERE depdata BETWEEN #12/01/2007# AND #12/02/2007# GROUP BY depcodcli) AS d ON d.depcodcli=c.clicod WHERE d.conta < 100

 

Monstruoso esse select não? Porém, como eu disse, os clientes que não receberam depósitos no período não aparecem, apenas os que receberam ao menos alguma coisa. Deveria aparecer como R$ 0.

 

Quem souber a solução aí me dá uma luz, faz 3 dias que estou enrolado nessa SELECT.

 

Desde já agradeço a atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

è o seguinte, se os valores de depósitos quando da soma são nulls, eles não vão aparecer. Sómente se o resultado for zero. Uma solução q ja usei, para um caso parecido foi fazer primeiro uma consulta de soma e salva-la com um nome, bem como dar um nome para o Campo da SomaEx:TotDepPeriodo.Depois ao fazer este Select usar um iif ou seimediad.Ex: IIF([TotDepPeriodo]>=1,[TotDepPeriodo],"0") as ValorDepEspero q ajude

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.