LINHAS EM COLUNAS MYSQL

ADHEL 29/01/2013 20:42:12
#418342
Pessoal
Na imagem 1 é minha tabela Caixa
Na imagem 2 eu montei como preciso que saia no datagridview.
Isso é possível?Preciso alterar a estrutura da minha tabela?
Estive lendo sobre Pivot,Cross Tab e transformar linhas em colunas.
Não sei ao certo se estou no caminho correto.
Nesses exemplos que li sempre havia mais de uma tabela.
Alguém tem algum exemplo ,só para ter o primeiro passo(entender a lógica).
Agradeço desde já a atenção.
FILMAN 30/01/2013 01:11:00
#418349
Cara Fiz no SQL Server e deu certo, então converti para o MySQL só não testei, pois o meu MySQL deu pau e não quer
abrir funcionou para o teste, mas faz um teste ai. Qualquer coisa posta aqui para que possamos ajudar

SELECT
idcliente,
sum(if(mes = 1, entrada, 0)) as [ô]Janeiro[ô],
sum(if(mes = 2, entrada, 0)) as [ô]Fevereiro[ô],
sum(if(mes = 3, entrada, 0)) as [ô]Marco[ô],
sum(if(mes = 4, entrada, 0)) as [ô]Abril[ô],
sum(if(mes = 5, entrada, 0)) as [ô]Maio[ô],
sum(if(mes = 6, entrada, 0)) as [ô]Junho[ô],
sum(if(mes = 7, entrada, 0)) as [ô]Julho[ô],
sum(if(mes = 8, entrada, 0)) as [ô]Agosto[ô],
sum(if(mes = 9, entrada, 0)) as [ô]Setembro[ô],
sum(if(mes = 10, entrada, 0)) as [ô]Outubro[ô],
sum(if(mes = 11, entrada, 0)) as [ô]Novembro[ô],
sum(if(mes = 12, entrada, 0)) as [ô]Dezembro[ô]
FROM (
SELECT
entrada, idcliente, month(vencimento) as mes
FROM tbTeste
)
GROUP BY idcliente
ORDER BY idcliente
ADHEL 30/01/2013 13:07:38
#418390
Filman
Muito obrigado pela ajuda.
Tentei no mysql e aparece o erro na imagem.
Que traduzindo a grosso modo :
Cada tabela deve ter seu apelido.
Entretanto já é um caminho a seguir.
Como é um projeto particular ,só posso postar na hora do almoço e na parte da noite.
A noite posto o que consegui.
Até mais.

FILMAN 30/01/2013 13:18:42
#418391
Cara tente assim

SELECT
x.codCliente,
sum(if(x.mes = 1, x.valor, 0)) as [ô]Janeiro[ô],
sum(if(x.mes= 2, x.valor, 0)) as [ô]Fevereiro[ô],
sum(if(x.mes= 3, x.valor, 0)) as [ô]Marco[ô],
sum(if(x.mes= 4, x.valor, 0)) as [ô]Abril[ô],
sum(if(x.mes= 5, x.valor, 0)) as [ô]Maio[ô],
sum(if(x.mes= 6, x.valor, 0)) as [ô]Junho[ô],
sum(if(x.mes= 7, x.valor, 0)) as [ô]Julho[ô],
sum(if(x.mes= 8, x.valor, 0)) as [ô]Agosto[ô],
sum(if(x.mes= 9, x.valor, 0)) as [ô]Setembro[ô],
sum(if(x.mes= 10, x.valor, 0)) as [ô]Outubro[ô],
sum(if(x.mes= 11, x.valor, 0)) as [ô]Novembro[ô],
sum(if(x.mes= 12, x.valor, 0)) as [ô]Dezembro[ô]
FROM (
SELECT
entrada as valor, idcliente as codCliente, month(vencimento) as mes
FROM tbTeste
) AS x
GROUP BY idcliente
ORDER BY idcliente
AJSO 30/01/2013 13:34:08
#418394
Resposta escolhida
Caro


Isso talves é o que procura

A consulta PIVOT no Mysql pelo ID campo valor e campo data para separar por mesmo o somatório do cmapo valor...


SELECT
id,
[1] AS Janeiro,
[2] AS Fevereiro,
[3] AS Março,
[4] AS Abril,
[5] AS Maio,
[6] AS Junho,
[7] AS Julho,
[8] AS Agosto,
[9] AS Setembro,
[10] AS Outubro,
[11] AS Novembro,
[12] AS Dezembro
FROM
(Select id, entrada, MONTH(vencimento) as ConsultaMes from dbo.tabela_nome) somatorio
PIVOT
(
SUM(entrada)
FOR ConsultaMes
IN ( [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12] )
) AS pvtMes

ou
=====================================================================
SELECT ID as Nome,
SUM(IF(MONTH(VENCIMENTO)=01,ENTRADA,[ô]0[ô])) AS [ô]Janeiro[ô],
SUM(IF(MONTH(VENCIMENTO)=02,ENTRADA,[ô]0[ô])) AS [ô]Fevereiro[ô],
SUM(IF(MONTH(VENCIMENTO)=03,ENTRADA,[ô]0[ô])) AS [ô]Março[ô],
SUM(IF(MONTH(VENCIMENTO)=04,ENTRADA,[ô]0[ô])) AS [ô]Abril[ô],
SUM(IF(MONTH(VENCIMENTO)=05,ENTRADA,[ô]0[ô])) AS [ô]Maio[ô],
SUM(IF(MONTH(VENCIMENTO)=06,ENTRADA,[ô]0[ô])) AS [ô]Junho[ô],
SUM(IF(MONTH(VENCIMENTO)=07,ENTRADA,[ô]0[ô])) AS [ô]Julho[ô],
SUM(IF(MONTH(VENCIMENTO)=08,ENTRADA,[ô]0[ô])) AS [ô]Agosto[ô],
SUM(IF(MONTH(VENCIMENTO)=09,ENTRADA,[ô]0[ô])) AS [ô]Setembro[ô],
SUM(IF(MONTH(VENCIMENTO)=10,ENTRADA,[ô]0[ô])) AS [ô]Outtubro[ô],
SUM(IF(MONTH(VENCIMENTO)=11,ENTRADA,[ô]0[ô])) AS [ô]novembro[ô],
SUM(IF(MONTH(VENCIMENTO)=12,ENTRADA,[ô]0[ô])) AS [ô]Dezembro[ô]
FROM entidade GROUP BY ID;



Boa Sorte


ADHEL 30/01/2013 22:42:36
#418461
 ou
=====================================================================
SELECT ID as Nome,
SUM(IF(MONTH(VENCIMENTO)=01,ENTRADA,[ô]0[ô])) AS [ô]Janeiro[ô],
SUM(IF(MONTH(VENCIMENTO)=02,ENTRADA,[ô]0[ô])) AS [ô]Fevereiro[ô],
SUM(IF(MONTH(VENCIMENTO)=03,ENTRADA,[ô]0[ô])) AS [ô]Março[ô],
SUM(IF(MONTH(VENCIMENTO)=04,ENTRADA,[ô]0[ô])) AS [ô]Abril[ô],
SUM(IF(MONTH(VENCIMENTO)=05,ENTRADA,[ô]0[ô])) AS [ô]Maio[ô],
SUM(IF(MONTH(VENCIMENTO)=06,ENTRADA,[ô]0[ô])) AS [ô]Junho[ô],
SUM(IF(MONTH(VENCIMENTO)=07,ENTRADA,[ô]0[ô])) AS [ô]Julho[ô],
SUM(IF(MONTH(VENCIMENTO)=08,ENTRADA,[ô]0[ô])) AS [ô]Agosto[ô],
SUM(IF(MONTH(VENCIMENTO)=09,ENTRADA,[ô]0[ô])) AS [ô]Setembro[ô],
SUM(IF(MONTH(VENCIMENTO)=10,ENTRADA,[ô]0[ô])) AS [ô]Outtubro[ô],
SUM(IF(MONTH(VENCIMENTO)=11,ENTRADA,[ô]0[ô])) AS [ô]novembro[ô],
SUM(IF(MONTH(VENCIMENTO)=12,ENTRADA,[ô]0[ô])) AS [ô]Dezembro[ô]
FROM entidade GROUP BY ID;



Filman
Muito obrigado pela ajuda e atenção.Até mais.

AJSO
Vou falar o quê!
Ficou mais que PERFEITO.
Ficou sensacional , divino.
[txt-size=2][txt-color=#e80000]MUITO OBRIGADO[/txt-color][/txt-size]

Tópico encerrado , respostas não são mais permitidas