Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
Sem clausula order?
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)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.
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
Motta. Comé que eu te agradeço?!
Valew
Uma caixa de old parr 12 anos , deve tá a bagatela de 130 paus a garrafa , quase nada .... :)
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.