Juntar as select no Mysql

10/02/2019

0

Alguém poderia me ajudar estou tentando unir a mesma select só com a "dat" diferente para fazer um relatório

select 
	l.nome,
	m.cpfcnpj,
	sum(if(descricao='apply',ncotas,0)) - sum(if(descricao='rescue',ncotas,0)) AS anterior,
    '-' as atual
from 
	movimentacao m, 
	login l
where 
	empresa ='sec' 
and
	m.cpfcnpj=l.cpfcnpj
and
	length(m.cpfcnpj)=11
and
	dat < '2018-07-31'
group by cpfcnpj
union
select 
	l.nome,
	m.cpfcnpj,
    '-' as anterior,
	sum(if(descricao='apply',ncotas,0)) - sum(if(descricao='rescue',ncotas,0)) AS atual
from 
	movimentacao m, 
	login l
where 
	empresa ='sec' 
and
	m.cpfcnpj=l.cpfcnpj
and
	length(m.cpfcnpj)=11
and
	dat < '2018-08-31'
group by cpfcnpj

order by nome;



RESULTADO DA SELECT
Alessandra Martins 12345678900 14 -
Alessandra Martins 12345678900 - 14
Alice Castilho 12345678900 - 1052
Alice Castilho 12345678900 904 -
Andre Felipe 12345678900 10 -
Andre Felipe 12345678900 - 10
Antonio Neto 12345678900 5 -
Antonio Neto 12345678900 - 5


RESULTADO DA SELECT QUE EU GOSTARIA

Alessandra Martins 12345678900 14 14
Alice Castilho 12345678900 904 1052
Andre Felipe 12345678900 10 10
Antonio Neto 12345678900 5 5


DESDE JÁ AGRADEÇO!!
Jailson Santos

Jailson Santos

Responder

Post mais votado

12/02/2019

Faz um SELECT por fora com GROUP BY.

Usa essa query imensa sua dentro do FROM.

Mas tira esse tracinho, se não vai dar ruim. Tenta usar 0 no lugar.

Consegui ser claro?

Grande abraço

Luiz Santos

Luiz Santos
Responder

Mais Posts

10/02/2019

Jailson Santos

resultado da select no link abaixo

https://ibb.co/f2Xsr6n
Responder

12/02/2019

Luiz Santos

Para facilitar sua vida.


SELECT Q.nome
     , Q.cpfcnpj
	 , SUM(Q.anterior) AS anterior
	 , SUM(Q.atual) AS atual
FROM (
select
    l.nome,
    m.cpfcnpj,
    sum(if(descricao='apply',ncotas,0)) - sum(if(descricao='rescue',ncotas,0)) AS anterior,
    0 as atual
from
    movimentacao m, 
    login l
where
    empresa ='sec'
and
    m.cpfcnpj=l.cpfcnpj
and
    length(m.cpfcnpj)=11
and
    dat < '2018-07-31'
group by cpfcnpj
union
select
    l.nome,
    m.cpfcnpj,
    0 as anterior,
    sum(if(descricao='apply',ncotas,0)) - sum(if(descricao='rescue',ncotas,0)) AS atual
from
    movimentacao m, 
    login l
where
    empresa ='sec'
and
    m.cpfcnpj=l.cpfcnpj
and
    length(m.cpfcnpj)=11
and
    dat < '2018-08-31'
group by cpfcnpj ) AS Q

GROUP BY 
	   Q.nome
     , Q.cpfcnpj
order by 
	Q.nome;

Responder

12/02/2019

Jailson Santos

Para facilitar sua vida.


SELECT Q.nome
     , Q.cpfcnpj
	 , SUM(Q.anterior) AS anterior
	 , SUM(Q.atual) AS atual
FROM (
select
    l.nome,
    m.cpfcnpj,
    sum(if(descricao='apply',ncotas,0)) - sum(if(descricao='rescue',ncotas,0)) AS anterior,
    0 as atual
from
    movimentacao m, 
    login l
where
    empresa ='sec'
and
    m.cpfcnpj=l.cpfcnpj
and
    length(m.cpfcnpj)=11
and
    dat < '2018-07-31'
group by cpfcnpj
union
select
    l.nome,
    m.cpfcnpj,
    0 as anterior,
    sum(if(descricao='apply',ncotas,0)) - sum(if(descricao='rescue',ncotas,0)) AS atual
from
    movimentacao m, 
    login l
where
    empresa ='sec'
and
    m.cpfcnpj=l.cpfcnpj
and
    length(m.cpfcnpj)=11
and
    dat < '2018-08-31'
group by cpfcnpj ) AS Q

GROUP BY 
	   Q.nome
     , Q.cpfcnpj
order by 
	Q.nome;




Obrigado Luiz funcionou perfeitamente. Fiz de outra forma usando left join, mas obrigado mesmo assim
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar