Ir para conteúdo

POWERED BY:

Arquivado

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

lendadomato

Consulta sql por me e ano

Recommended Posts

galera,

 

tenho essa consulta mas ela me retorna o mes e o ano NULL, o banco de dados é MySQL.

 

mes ano total

NULL NULL 840

NULL NULL 720

NULL NULL 583

NULL NULL 504

 

não sei pq não funciona.

 

SELECT Month( datacompra ) AS mes, Year( datacompra ) AS ano, sum( totalcompra ) AS total
FROM compras
GROUP BY pedido

desde já agradeço a tenção de todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

o campo é do tipo DATE ?

 

poste a estrutura da tabela, com alguns registros.

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo William,

 

o campo datacompra estava como tipo VACHAR e agora passei para DATE

e o resultado:

 

mes ano total

0 0 840

0 0 720

0 0 583

0 0 504

 

no caso deveria retornar:

 

mes ano total

01 2008 840

02 2008 720

03 2008 583

04 2008 504

 

 

o formato das datas estão assim:

 

01/01/2008

 

será q tenho q formatar as datas e como farei isso?

 

o campo é do tipo DATE ?

 

poste a estrutura da tabela, com alguns registros.

 

 

William,

 

o campo é do tipo VACHAR, eu tinha trocado mas não deu em nada, mas consegui

uma consulta q me ajudou muito:

 

SELECT DISTINCT YEAR(STR_TO_DATE( datacompra, '%d/%m/%Y')) AS ANO, month(STR_TO_DATE( datacompra, '%d/%m/%Y')) AS MES FROM compras

 

retorno:

 

ANO MES

2008 4

2008 5

2008 6

2008 7

2008 8

2008 9

2008 10

2008 11

2008 12

2009 1

2009 2

2009 3

2009 4

2009 5

2009 6

2009 7

2009 8

2009 9

2009 10

2009 11

2009 12

2010 1

2010 2

2010 3

2010 4

2010 5

2010 6

 

agora o q eu preciso é recuperar a soma dos valores por mês onde o nome do campo é "totalcompra" ,

agurado uma ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só um group by

 

 

SELECT DISTINCT YEAR(STR_TO_DATE( datacompra, '%d/%m/%Y')) AS ANO, month(STR_TO_DATE( datacompra, '%d/%m/%Y')) AS MES,sum(totalcompra) totalcompra
FROM compras
group by DISTINCT YEAR(STR_TO_DATE( datacompra, '%d/%m/%Y'), month(STR_TO_DATE( datacompra, '%d/%m/%Y')) 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só um group by

 

 

SELECT DISTINCT YEAR(STR_TO_DATE( datacompra, '%d/%m/%Y')) AS ANO, month(STR_TO_DATE( datacompra, '%d/%m/%Y')) AS MES,sum(totalcompra) totalcompra
FROM compras
group by DISTINCT YEAR(STR_TO_DATE( datacompra, '%d/%m/%Y'), month(STR_TO_DATE( datacompra, '%d/%m/%Y')) 
amigo Motta,

 

não funcionou, veja mensagem de erro:

 

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DISTINCT YEAR(STR_TO_DATE( datacompra, '%d/%m/%Y'), month(STR_TO_DATE( datacompr' at line 3

 

agrupar a soma por ano eu consegui com essa consulta:

 

 

SELECT distinct RIGHT(datacompra,4)as Ano, sum(totalcompra) as total

FROM compras

WHERE `status`<> 'Compras em Aberto' GROUP BY YEAR(STR_TO_DATE( datacompra, '%d/%m/%Y')) ORDER BY pedido

 

 

que retorna:

 

Ano total

2008 24470.511

2009 38427.156

2010 25067.084

 

 

agora só preciso do agrupamento por mes e ano,

 

 

Só um group by

 

 

SELECT DISTINCT YEAR(STR_TO_DATE( datacompra, '%d/%m/%Y')) AS ANO, month(STR_TO_DATE( datacompra, '%d/%m/%Y')) AS MES,sum(totalcompra) totalcompra
FROM compras
group by DISTINCT YEAR(STR_TO_DATE( datacompra, '%d/%m/%Y'), month(STR_TO_DATE( datacompra, '%d/%m/%Y')) 
amigo Motta,

 

não funcionou, veja mensagem de erro:

 

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DISTINCT YEAR(STR_TO_DATE( datacompra, '%d/%m/%Y'), month(STR_TO_DATE( datacompr' at line 3

 

caramba Motta,

 

consegui com sua consulta mas tirei o distinct do agrupamento e deu certo:

 

 

SELECT DISTINCT YEAR(STR_TO_DATE( datacompra,'%d/%m/%Y')) AS ANO,

month(STR_TO_DATE( datacompra, '%d/%m/%Y')) AS MES,sum(totalcompra) Total

FROM compras

group by YEAR(STR_TO_DATE( datacompra, '%d/%m/%Y')) , MONTH(STR_TO_DATE( datacompra, '%d/%m/%Y'))

 

 

agora vou fazer as contas na calculadora pra ver se está somando certo, muito obrigrado cara!

 

eu só gostaria de editar o título do post pq faltou o "s" no mês, rsrsr,

grande abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Distração minha, o group dispensa o distinct

 

SELECT YEAR(STR_TO_DATE( datacompra, '%d/%m/%Y')) AS ANO, 
       month(STR_TO_DATE( datacompra, '%d/%m/%Y')) AS MES,
       sum(totalcompra) totalcompra
FROM compras
group by YEAR(STR_TO_DATE( datacompra, '%d/%m/%Y'), 
         month(STR_TO_DATE( datacompra, '%d/%m/%Y')) 

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.