Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

samesdavis

[Resolvido] PIVOT em MySQL

Mensagens Recomendadas

samesdavis

Olá pessoal,

Estou migrando um sistema que era em Access para MySQL e me deparei com essa dúvida:

Tenho uma consulta de referência cruzada ( PIVOT ) , só que não sei como montar o comando SQL no MySQL.

TRANSFORM IIf(IsNull(Sum([TOTALVL])),0,Sum([TOTALVL])) AS SomaDeSALDOVENC SELECT Qry_Financ_BaseAnalise_CX.ANOCX, Qry_Financ_BaseAnalise_CX.ID_CONTA, Qry_Financ_BaseAnalise_CX.DS_CONTA FROM Qry_Financ_BaseAnalise_CX WHERE (((Qry_Financ_BaseAnalise_CX.ANOCX)=2013) AND ((Qry_Financ_BaseAnalise_CX.TP_CONTA)='1')) GROUP BY Qry_Financ_BaseAnalise_CX.ANOCX, Qry_Financ_BaseAnalise_CX.ID_CONTA, Qry_Financ_BaseAnalise_CX.DS_CONTA PIVOT Qry_Financ_BaseAnalise_CX.MESCX;

A parte do Isnull() eu consegui resolver assim

coalesce(`Qry_Financ_BaseAnalise_CX`.`TOTALVL`,0)

Mas o restante estou com dificuldades. Alguém pode me ajudar ?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
samesdavis

Consegui resolver a consulta abaixo no MySQL

tSQL = " SELECT `qry_financ_baseanalise`.`ID_CONTA`, `qry_financ_baseanalise`.`DS_CONTA`, Sum(CASE `qry_financ_baseanalise`.`MESVENC` " & _

" WHEN 1 THEN `qry_financ_baseanalise`.`SALDOVENC` ELSE 0 END) 'Jan', Sum(CASE `qry_financ_baseanalise`.`MESVENC` " & _

" WHEN 2 THEN `qry_financ_baseanalise`.`SALDOVENC` ELSE 0 END) 'Fev', Sum(CASE `qry_financ_baseanalise`.`MESVENC` " & _

" WHEN 3 THEN `qry_financ_baseanalise`.`SALDOVENC` ELSE 0 END) 'Mar', Sum(CASE `qry_financ_baseanalise`.`MESVENC` " & _

" WHEN 4 THEN `qry_financ_baseanalise`.`SALDOVENC` ELSE 0 END) 'Abr', Sum(CASE `qry_financ_baseanalise`.`MESVENC` " & _

" WHEN 5 THEN `qry_financ_baseanalise`.`SALDOVENC` ELSE 0 END) 'Mai', Sum(CASE `qry_financ_baseanalise`.`MESVENC` " & _

" WHEN 6 THEN `qry_financ_baseanalise`.`SALDOVENC` ELSE 0 END) 'Jun', Sum(CASE `qry_financ_baseanalise`.`MESVENC` " & _

" WHEN 7 THEN `qry_financ_baseanalise`.`SALDOVENC` ELSE 0 END) 'Jul', Sum(CASE `qry_financ_baseanalise`.`MESVENC` " & _

" WHEN 8 THEN `qry_financ_baseanalise`.`SALDOVENC` ELSE 0 END) 'Ago', Sum(CASE `qry_financ_baseanalise`.`MESVENC` " & _

" WHEN 9 THEN `qry_financ_baseanalise`.`SALDOVENC` ELSE 0 END) 'Set', Sum(CASE `qry_financ_baseanalise`.`MESVENC` " & _

" WHEN 10 THEN `qry_financ_baseanalise`.`SALDOVENC` ELSE 0 END) 'Out', Sum(CASE `qry_financ_baseanalise`.`MESVENC` " & _

" WHEN 11 THEN `qry_financ_baseanalise`.`SALDOVENC` ELSE 0 END) 'Nov', Sum(CASE `qry_financ_baseanalise`.`MESVENC` " & _

" WHEN 12 THEN `qry_financ_baseanalise`.`SALDOVENC` ELSE 0 END) 'Dez' FROM `qry_financ_baseanalise` GROUP BY " & _

" `qry_financ_baseanalise`.`ANOVENC`, `qry_financ_baseanalise`.`TP_LANC`, `qry_financ_baseanalise`.`ID_CONTA`, " & _

" `qry_financ_baseanalise`.`DS_CONTA` HAVING `qry_financ_baseanalise`.`ANOVENC` = " & Me.cboAno.Text & " AND `qry_financ_baseanalise`.`TP_LANC` = 'PG';"

ds = Busca.RetornarDataSet(tSQL)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.