SQL - CLIENTES SEM MOVIMENTO POR REGIAO
preciso montar uma query que pegue em um perÃodo os clientes que não tiveram movimento por região, ou melhor, as cidades serão informadas.
Futura Bom Dia
Acho que ficaria algo assim:
select * from suatabela where data between datainicial and datafinal and cidade not in (cidades selecionadas)
Testa ai
Abraço
Acho que ficaria algo assim:
select * from suatabela where data between datainicial and datafinal and cidade not in (cidades selecionadas)
Testa ai
Abraço
alvaro, ai q ta o problema, não achei idéia para as cidades selecionadas, não estava querendo usar tabela temporária para grava-las, mas pelo jeito vai ter q usar.
Informe a ESTRUTURA da tabela.
Futura vc pode ter uma tabela onde estejam cadastradas as cidades e no cadastro de clientes quando for selecionar a cidade, vc guarda o código da cidade, assim vc terá como selecionar as cidades, más essa tabela de cidades não será temporária
Entendeu?
Entendeu?
sim entendi, mas eu ja tenho isto. estou tentanto achar a lógica para montar a sql de clientes q não compram no perÃodo, o perÃodo esta na tabela de vendas, e no cadastro de clientes, tenho o campo id_cid ( cidades). acho q teria q ser um select dentro de outro, o problema é a selação das cidades, por exemplo, ao tirar o relatório o usuário escolhe 3 cidades, não estou vendo saida senão joga-las em uma tabela temp.....para depois montar o select....
SELECT Cli.Cidade, cli.Nome,
COUNT(Mov.DataMov) AS Qtd
FROM Clientes Cli
LEFT JOIN Movimentos Mov
ON mov.CodCli = Cli.CodCli
HAVING COUNT(Mov.DataMov) = 0
GROUP BY Cli.Cidade, cli.Nome
WHERE mov.DataMov BETWEEN @Dt1 AND @Dt2
Futura não sei se entendi a sua dificuldade, más acho que está em saber como guardar as cidades selecionadas é isso?
Se for tem duas formas
No Form vc preenche 3 combos - Descricao + código - depois da um split e tira o código e/ou preenche um combo e cria 3 variáveis e da o mesmo split e guarda o código, depois utiliza o meu select e coloca esses códigos lá, td o que for diferente do q foi selecionado, irá trazer no resultado
Se entendi acho q isso pode te ajudar
Se for tem duas formas
No Form vc preenche 3 combos - Descricao + código - depois da um split e tira o código e/ou preenche um combo e cria 3 variáveis e da o mesmo split e guarda o código, depois utiliza o meu select e coloca esses códigos lá, td o que for diferente do q foi selecionado, irá trazer no resultado
Se entendi acho q isso pode te ajudar
O SELECT que você quer é este aqui mas, se for montar ele no VB para executar, muda as variáveis @xxx para os valores que vc tem dos respectivos campos.
SELECT cid.NomeCidade, cli.Nome,
COUNT(Mov.DataMov) AS Qtd
FROM Clientes Cli
INNER JOIN Cidades Cid
ON cid.id_cid = cli.id_cid
LEFT JOIN Movimentos Mov
ON mov.CodCli = Cli.CodCli
HAVING COUNT(Mov.DataMov) = 0
GROUP BY Cid.NomeCidade, cli.Nome
WHERE mov.DataMov BETWEEN @Dt1 AND @Dt2
AND (cid.NomeCidade = @Cid1 OR
cid.NomeCidade = @Cid2 OR
cid.NomeCidade = @Cid3)
BLZ RCMRO..EU VOU TESTAR DEPOIS TE PASSO O RESULTADO...POR EQTO VALEU....
Conseguiu testar? Funcionou? Tem algo mais que eu possa te ajudar?
Se estiver tudo OK, não esquece de fechar o tópico;
Se estiver tudo OK, não esquece de fechar o tópico;
Tópico encerrado , respostas não são mais permitidas