Ir para conteúdo

POWERED BY:

Arquivado

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

davisvasconcellos

[Resolvido] datas para colunas

Recommended Posts

pessoal. to quebrando a cuca, e não consegui fazer essa query.

tenho uma tabela com 03 campos relevantes. [descricao][data][valor]

algo assim:

aaaaa 10-01-2011 10,00

bbbbb 11-01-2011 30,00

ccccc 15-02-2011 50,00

nnnnn 18-12-2010 25,00

 

 

o que eu quero é listar assim

[descricao] [jan]-----[fev]-----[mar]-----[abr]-----[mai]...[dez]

aaaaaa--- 10,00

bbbbbb--- 30,00

cccccc--------------50,00

dddddd-------------------------- 40,00

eeeeee --------------------------80,00

ffffff------------------------35,00

nnnnnn ------------------------------------------------ 25,00

 

 

eu consigo exibir esse resultado no browser do cliente, mas faço um select , jogo pro código e trato em um array, depois monto outro select e assim por diante.

gostaria de otimizar esse meu bacalhau,pois trazendo o RS já pronto eu só exibo sem precisar dar tanta volta.

sei que tenho que usar ( EXTRACT( MONTH FROM table.column ) = 1 ) AND ( EXTRACT( YEAR FROM table.column ) = YEAR(now()))

para separar os meses e os anos do meu campo data, mas estou meio perdido em como montar essa consulta.

 

se alguém puder ajudar, agradeço.

 

davis

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim:

SELECT
descricao, 
IF(`data` LIKE '2010-01%', valor, '') AS '01 2010',
IF(`data` LIKE '2010-02%', valor, '') AS '02 2010',
IF(`data` LIKE '2010-03%', valor, '') AS '03 2010',
IF(`data` LIKE '2010-04%', valor, '') AS '04 2010',
IF(`data` LIKE '2010-05%', valor, '') AS '05 2010',
IF(`data` LIKE '2010-06%', valor, '') AS '06 2010',
IF(`data` LIKE '2010-07%', valor, '') AS '07 2010',
IF(`data` LIKE '2010-08%', valor, '') AS '08 2010',
IF(`data` LIKE '2010-09%', valor, '') AS '09 2010',
IF(`data` LIKE '2010-10%', valor, '') AS '10 2010',
IF(`data` LIKE '2010-11%', valor, '') AS '11 2010',
IF(`data` LIKE '2010-12%', valor, '') AS '12 2010'
FROM venda
WHERE `data` LIKE '2010%'

Compartilhar este post


Link para o post
Compartilhar em outros sites

GENIAL...

já adaptei e vou por em prática, mas testei e foi OK. muito obrigado

 

 

 

 

Tenta assim:

SELECT
descricao, 
IF(`data` LIKE '2010-01%', valor, '') AS '01 2010',
IF(`data` LIKE '2010-02%', valor, '') AS '02 2010',
IF(`data` LIKE '2010-03%', valor, '') AS '03 2010',
IF(`data` LIKE '2010-04%', valor, '') AS '04 2010',
IF(`data` LIKE '2010-05%', valor, '') AS '05 2010',
IF(`data` LIKE '2010-06%', valor, '') AS '06 2010',
IF(`data` LIKE '2010-07%', valor, '') AS '07 2010',
IF(`data` LIKE '2010-08%', valor, '') AS '08 2010',
IF(`data` LIKE '2010-09%', valor, '') AS '09 2010',
IF(`data` LIKE '2010-10%', valor, '') AS '10 2010',
IF(`data` LIKE '2010-11%', valor, '') AS '11 2010',
IF(`data` LIKE '2010-12%', valor, '') AS '12 2010'
FROM venda
WHERE `data` LIKE '2010%'

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.