SQL: unir 2 selects da mesma tabela
29/10/2015
0
Boa tarde Pessoal
É possível unir os dois selects abaixo em uma mesma consulta?
SELECTVENDEDOR,
SUM (VLR_N_FISC) AS MES_ANT from nfme where MONTH(DT_EMISSAO) = MONTH(GETDATE())-1 and YEAR(DT_EMISSAO) = YEAR(GETDATE()) GROUP BY VENDEDOR
SELECT VENDEDOR,
SUM (VLR_N_FISC) AS MES_ATU from nfme where MONTH(DT_EMISSAO) = MONTH(GETDATE()) and YEAR(DT_EMISSAO) = YEAR(GETDATE()) GROUP BY VENDEDOR
Obrigada!
Abçs, Ariana
É possível unir os dois selects abaixo em uma mesma consulta?
SELECTVENDEDOR,
SUM (VLR_N_FISC) AS MES_ANT from nfme where MONTH(DT_EMISSAO) = MONTH(GETDATE())-1 and YEAR(DT_EMISSAO) = YEAR(GETDATE()) GROUP BY VENDEDOR
SELECT VENDEDOR,
SUM (VLR_N_FISC) AS MES_ATU from nfme where MONTH(DT_EMISSAO) = MONTH(GETDATE()) and YEAR(DT_EMISSAO) = YEAR(GETDATE()) GROUP BY VENDEDOR
Obrigada!
Abçs, Ariana
Ariana Barros
Curtir tópico
+ 0
Responder
Posts
29/10/2015
Jothaz
Sempre que postar código use a tag "</>" do primeiro ícone a esquerda, pois facilitar a leitura e a ajuda.
Tente assim:
Tente assim:
SELECT VENDEDOR,SUM (VLR_N_FISC) AS MES_ANT from nfme where MONTH(DT_EMISSAO) = MONTH(GETDATE())-1 and YEAR(DT_EMISSAO) = YEAR(GETDATE()) UNION ALL SELECT VENDEDOR,SUM (VLR_N_FISC) AS MES_ATU from nfme where MONTH(DT_EMISSAO) = MONTH(GETDATE()) and YEAR(DT_EMISSAO) = YEAR(GETDATE()) GROUP BY VENDEDOR
Responder
04/11/2015
Fernando Vicari
Boa noite Ariana
Não sei qual o banco de dados você utiliza, porém entendi sua dúvida.
No oracle eu faria utilizando a clausula DECODE que é um IF dentro do teu select.
No firebird a equivalencia ao Decode é o iif(sexo = 'M', 'Sr.', 'Sra.') e no SQLServer é o Case.
Exemplo no oracle:
O que eu fiz foi trazer todas as vendas do mês anterior até o final do mês atual. E se o mes da data de emissao for igual ao mês atual eu somo em uma coluna senão na outra.
Não sei qual o banco de dados você utiliza, porém entendi sua dúvida.
No oracle eu faria utilizando a clausula DECODE que é um IF dentro do teu select.
No firebird a equivalencia ao Decode é o iif(sexo = 'M', 'Sr.', 'Sra.') e no SQLServer é o Case.
Exemplo no oracle:
SELECT VENDEDOR, SUM(DECODE(TO_CHAR(DT_EMISSAO, 'MM'), TO_CHAR(SYSDATE, 'MM'), VLR_N_FISC, 0) MES_ATU SUM(DECODE(TO_CHAR(DT_EMISSAO, 'MM'), TO_CHAR(SYSDATE, 'MM'), 0, VLR_N_FISC) MES_ANT from nfme where DT_EMISSAO >= TRUNC((LAST_DAY(ADD_MONTHS(sysdate, -2))+1)) AND DT_EMISSAO <= TRUNC(LAST_DAY(sysdate))
O que eu fiz foi trazer todas as vendas do mês anterior até o final do mês atual. E se o mes da data de emissao for igual ao mês atual eu somo em uma coluna senão na outra.
Responder
Clique aqui para fazer login e interagir na Comunidade :)