Mysql consulta lado a lado
25/04/2017
0
Ex:
Tenho estes dados:
0001 FULANO DE TAL 01/01/2016 120,00
0001 FULANO DE TAL 01/02/2016 120,00
0002 BELTRANO DE TAL 01/01/2016 140,00
0003 CICRANO DE TAL 01/01/2016 110,00
0003 CICRANO DE TAL 01/02/2016 110,00
Preciso de uma consulta que me retorne isto:
0001 FULANO DE TAL 120,00 120,00
0002 BELTRANO DE TAL 140,00
0003 CICRANO DE TAL 110,00 110,00
Jocimar Pequeno
Posts
25/04/2017
Luiz Santos
Não entendi muito bem.
O que você quer dizer com "Lado a Lado"
Grande abraço
25/04/2017
Jocimar Pequeno
26/04/2017
Luiz Santos
Uma dica, é você trabalhar com os meses da data, a menos que você queira ver o dia mesmo.
Eu fiz no SQL Server, mas a lógica para o MySQL é a mesma.
IF OBJECT_ID('TEMPDB..#TESTE') IS NOT NULL DROP TABLE #TESTE CREATE TABLE #TESTE ( CODIGO VARCHAR(50), NOME VARCHAR(50), DATA VARCHAR(50), VALOR NUMERIC (18,2) ) INSERT INTO #TESTE VALUES ('0001', 'FULANO DE TAL', '01/01/2016', 120.00), ('0001', 'FULANO DE TAL', '01/02/2016', 120.00), ('0002', 'BELTRANO DE TAL', '01/01/2016', 140.00), ('0003', 'CICRANO DE TAL', '01/01/2016', 110.00), ('0003', 'CICRANO DE TAL', '01/02/2016', 110.00) SELECT TAB.CODIGO, TAB.NOME, SUM(TAB.JAN) AS JAN, SUM(TAB.FEV) AS FEV FROM ( SELECT CODIGO, NOME, CASE WHEN DATA = '01/01/2016' THEN VALOR ELSE 0 END AS JAN, CASE WHEN DATA = '01/02/2016' THEN VALOR ELSE 0 END AS FEV FROM #TESTE) AS TAB GROUP BY TAB.CODIGO, TAB.NOME
Grande abraço
26/04/2017
Luiz Santos
CREATE TEMPORARY TABLE TESTE ( CODIGO VARCHAR(50), NOME VARCHAR(50), DATA VARCHAR(50), VALOR NUMERIC (18,2) ); INSERT INTO TESTE VALUES ('0001', 'FULANO DE TAL', '01/01/2016', 120.00), ('0001', 'FULANO DE TAL', '01/02/2016', 120.00), ('0002', 'BELTRANO DE TAL', '01/01/2016', 140.00), ('0003', 'CICRANO DE TAL', '01/01/2016', 110.00), ('0003', 'CICRANO DE TAL', '01/02/2016', 110.00); SELECT TAB.CODIGO, TAB.NOME, SUM(TAB.JAN) AS JAN, SUM(TAB.FEV) AS FEV FROM ( SELECT CODIGO, NOME, CASE WHEN DATA = '01/01/2016' THEN VALOR ELSE 0 END AS JAN, CASE WHEN DATA = '01/02/2016' THEN VALOR ELSE 0 END AS FEV FROM TESTE) AS TAB GROUP BY TAB.CODIGO, TAB.NOME;
Grande abs
Clique aqui para fazer login e interagir na Comunidade :)