Ir para conteúdo

POWERED BY:

Arquivado

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

DanielAndrade

Buscar membros por data de cadastro, seguindo variação... (?!)

Recommended Posts

E ai, povo!

 

Seguinte...

 

Tenho uma table 'Membros' que tem um 'dtCadastro' [datetime] e um milhão de registros. Preciso de um gráfico mostrando a evolução do cadastro. Eu quase que resolvi, soh q com várias consultas que salva numa TEMP... mas nem resolveu, nem ficou legal.

 

Então, gostaria que pegasse quantos membros foram cadastrados considerando o primeiro dia de cadastro como primeiro registro, que o segundo fosse o proximo mês (ou período - esse eh o meu problema) e o ultimo registro fosse o total de membros até o dia da consulta.

 

Galera, já agradeço pelos que puderem responder... abraço

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Select year(dtCadastro) as ano,

month(dtCadastro) as mes,

Conut(*) as qtd

From clientes

Group by year(dtCadastro),

month(dtCadastro)

 

 

Use o resultado para exibir a evolucão em forma de gráfico , talvez tenha de concatenar ano&mês.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Depende da ferramenta usada para fazer o Gráfico, no geral elas "se viram" mas

Select year(dtCadastro) as ano,
       month(dtCadastro) as mes,
       Conut(*) as qtd
From clientes
Group by year(dtCadastro),
          month(dtCadastro)
Order by year(dtCadastro),
         month(dtCadastro)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando existe um GROUP BY na SQL sem um ORDER BY, o próprio banco de dados ordena utilizando como critério o GROUP BY, o resultado postado pelo Motta no #2 e #4 será o mesmo.

 

Quando não existe uma coluna nas tabelas envolvidas na consulta, você pode colocar o próprio ALIAS no GROUP BY. Fica mais claro no exemplo abaixo:

CREATE TABLE meses (
  id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
  mes VARCHAR(9) NOT NULL,
  PRIMARY KEY (id)
);

INSERT INTO meses (mes) VALUES
('Janeiro'),
('Fevereiro'),
('Marco'),
('Abril'),
('Maio'),
('Junho'),
('Julho'),
('Agosto'),
('Setembro'),
('Outubro'),
('Novembro'),
('Dezembro');

SELECT id AS mes, mes AS nome_mes
FROM meses
GROUP BY mes
ORDER BY mes ASC;

Claro que isso não é uma resposta, só uma explicação. No meu entendimento, a resposta dada pelo Motta é a mais adequada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A pergunta básica (gerar um gráfico) requer uma ferramenta auxiliar , Crystal , Excel , etc, poi gerar gráfico "na mão" é um |*V+@ trabalho ...

 

Mas em geral uma série montada num sql monta bons gráficos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma caixa de old parr 12 anos , deve tá a bagatela de 130 paus a garrafa , quase nada .... :)

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.