Consulta UNION, GROUP BY e COUNT na mesma query
Olá pessoal,
Não estou conseguindo avançar na criação de uma query que possa ter UNION, GROUP BY e COUNT baseado em um periodo de data na mesma consulta. Para eu atingir meu objetivo, necessito das seguintes ações na mesma consulta:
-
-
filtrar, agrupar e contar todos os pedidos de clientes em um determinado período
-
filtrar e agrupar os clientes que não enviaram pedidos no mesmo período
- identificar os clientes que enviaram pedido com um status = ATIVO
- Identificar os clientes que NÃO enviaram pedido com um status = INATIVO
Na minha query abaixo ainda falta colocar na claúsula WHERE o filtro por intervalo de datas que passarei através de parâmetro.
Agradeço antecipadamente a ajuda dos colegas para atingir esse objetivo.
select "Cliente"."Nome" as Conveniado, "Municipios"."Nome" as Cidade, "Estado"."Nome" as Estado, 'ATIVO' as status from ((((dbo.Pedidos prt inner join dbo.Cliente Cliente on (Cliente.Id = prt.ClienteId)) inner join dbo.Logradouro Logradouro on (Logradouro.Id = Cliente.Logradouro01Id)) inner join dbo.Municipios Municipios on (Municipios.Id = Logradouro.MunicipioId)) inner join dbo.Estado Estado on (Estado.Id = Municipios.EstadoId)) where (prt.Inativo = 0)UNION select Cliente.Nome as Conveniado, Municipios.Nome as Cidade, Estado.Nome as Estado, 'INATIVO' as status from ((((dbo.Pedidos prt inner join dbo.Cliente Cliente on (Cliente.Id = prt.ClienteId)) inner join dbo.Logradouro Logradouro on (Logradouro.Id = Cliente.Logradouro01Id)) inner join dbo.Municipios Municipios on (Municipios.Id = Logradouro.MunicipioId)) inner join dbo.Estado Estado on (Estado.Id = Municipios.EstadoId)) where ((prt.ClienteId Is Null))
só um detalhe que esqueci pessoal, acho também que eu não deveria usar INNER JOIN mas LEFT JOIN. De qualquer forma, agradeço mais uma vez a colaboração de vocês.
Discussão (16)
Carregando comentários...