Filtrar clientes que nao fazem orcamentos em 6 meses
07/10/2019
0
Preciso fazer uma query de uma unica tabela de orcamentos onde pego todos os clientes que nao orçam a 6 meses atras. Esses clientes nao devem ter orçamentos a frente desse periodo. Alguem tem noção de como fazer isso. Porque nao estou conseguindo. Utilizando SQL SERVER
Obrigado pela ajuda.
Enock Junior
Post mais votado
07/10/2019
SELECT CLI.CLIENTE, CLI.NOME FROM CLIENTES CLI LEFT JOIN ORCAMENTOS ORC ON ORC.CLIENTE = CLI.CLIENTE GROUP BY CLI.CLIENTE, CLI.NOME HAVING MAX(COALESCE(ORC.DATA,0)) < (GETDATE() - 180)
Emerson Nascimento
Mais Posts
07/10/2019
Enock Junior
SELECT CLI.CLIENTE, CLI.NOME FROM CLIENTES CLI LEFT JOIN ORCAMENTOS ORC ON ORC.CLIENTE = CLI.CLIENTE GROUP BY CLI.CLIENTE, CLI.NOME HAVING MAX(COALESCE(ORC.DATA,0)) < (GETDATE() - 180)
07/10/2019
Enock Junior
SELECT CLI.CLIENTE, CLI.NOME FROM CLIENTES CLI LEFT JOIN ORCAMENTOS ORC ON ORC.CLIENTE = CLI.CLIENTE GROUP BY CLI.CLIENTE, CLI.NOME HAVING MAX(COALESCE(ORC.DATA,0)) < (GETDATE() - 180)
SELECT DISTINCT
clientes.CodCliente, clientes.RazaoSocial, orc.NumOrcamento,ORC.EMail,ORC.Telefone, orc.DtEmissao
FROM
crm_clientes
left JOIN
ORC ON ORC.CodCliente = Clientes.CodCliente
GROUP BY clientes.CodCliente, clientes.RazaoSocial , orc.NumOrcamento, orc.DtEmissao, ORC.EMail, ORC.Telefone
HAVING MAX(COALESCE(orC.dtemissao,0)) < (GETDATE() -180)
order by orc.DtEmissao
resultado
59637 2019-04-10 00:00:00.000
59637 2019-04-10 00:00:00.000
60315 2019-04-10 00:00:00.000
61131 2019-04-10 00:00:00.000
Aqui ele me traz ok . O resultado esta ok, porem, quando eu filtro ele no sistema nao deveria vir orçamentos acima dessa data e aparece orçamentos de hoje. Minha intenção é saber quem nao fez orçamentos do mes 4 para frente
08/10/2019
Emerson Nascimento
- se você quer a última data, o campo que contém essa data não pode estar no GROUP BY e deve ser tratado por uma função de agregação
o correto seria algo assim:
SELECT c.CodCliente, c.RazaoSocial, orc.NumOrcamento, orc.EMail, orc.Telefone, max(orc.DtEmissao) UltEmissao FROM crm_clientes c LEFT JOIN ORC ON orc.CodCliente = c.CodCliente GROUP BY c.CodCliente, c.RazaoSocial, orc.NumOrcamento, orc.EMail, orc.Telefone HAVING MAX(COALESCE(orc.DtEmissao,0)) < (GETDATE() -180)
08/10/2019
Emerson Nascimento
SELECT c.CodCliente, c.RazaoSocial, max(orc.NumOrcamento) NumOrcamento, max(orc.DtEmissao) UltEmissao FROM crm_clientes c LEFT JOIN ORC ON orc.CodCliente = c.CodCliente GROUP BY c.CodCliente, c.RazaoSocial HAVING MAX(COALESCE(orc.DtEmissao,0)) < (GETDATE() -180)
08/10/2019
Enock Junior
SELECT c.CodCliente, c.RazaoSocial, max(orc.NumOrcamento) NumOrcamento, max(orc.DtEmissao) UltEmissao FROM crm_clientes c LEFT JOIN ORC ON orc.CodCliente = c.CodCliente GROUP BY c.CodCliente, c.RazaoSocial HAVING MAX(COALESCE(orc.DtEmissao,0)) < (GETDATE() -180)
Clique aqui para fazer login e interagir na Comunidade :)