Fórum Unir duas Tabelas Firebird #487574

01/08/2014

0

Bom Dia!!!

Estou com a seguinte situação, preciso juntar duas tabelas para criar um relatório para faturamento por exemplo

Cupom Fiscal: R$ 1.300,00
Nota Eletrônica: R$ 5.000,00

O select individual está ok, porém não estou conseguindo juntar, alguém poderia me ajudar nessa?

Segue os códigos:

Nota Eletrônica:
SELECT VENDAS.CFOPS,
SUM (TOTAL) AS VALOR_TOTAL FROM VENDAS
WHERE (EMISSAO >= '06/01/2014' AND EMISSAO <= '06/30/2014') AND
(VENDAS.CFOPS='5102' OR VENDAS.CFOPS='6102') AND VENDAS.CANCELADO = '0'
GROUP BY VENDAS.CFOPS


Cupom Fiscal:
SELECT VENDAS_ECF.TOT_VENDA FROM VENDAS_ECF
WHERE (DATA >= '06/01/2014' AND DATA <= '06/30/2014') AND
VENDAS_ECF.CANCELADO ='0'
David Sobral

David Sobral

Responder

Posts

01/08/2014

Renato Rubinho

Buenas,

Use "UNION ALL" entre os selects.
Obs: Ambos tem que ter os mesmos tipos de campos nas colunas dos resultados. No exemplo, coloquei "0000" na coluna que seria o cfop do ecf.

SELECT 
  VENDAS.CFOPS,
  SUM(TOTAL) AS VALOR_TOTAL 
FROM 
  VENDAS
WHERE (EMISSAO >= '06/01/2014' 
AND    EMISSAO <= '06/30/2014') 
AND   (VENDAS.CFOPS='5102' OR VENDAS.CFOPS='6102') 
AND    VENDAS.CANCELADO = '0'
GROUP BY VENDAS.CFOPS

UNION ALL

SELECT 
  '0000',
  VENDAS_ECF.TOT_VENDA
FROM 
  VENDAS_ECF
WHERE (DATA >= '06/01/2014' 
AND    DATA <= '06/30/2014') 
AND VENDAS_ECF.CANCELADO ='0'


Abraççç,
Renato
Responder

Gostei + 0

04/08/2014

David Sobral

Renato

Quanto o código ficou perfeito, porém não estou conseguindo separar as colunas para deixar o que é venda de Nota eletrônica e cupom,[img]http://arquivo.devmedia.com.br/forum/imagem/0-20140804-085508.png[/img]
Teria que ter outra coluna só para N_caixa, por exemplo
Responder

Gostei + 0

04/08/2014

Renato Rubinho

Isso mesmo. Para identificar, precisa adicionar uma coluna para distinguir os registros.

Ex:

SELECT 
  VENDAS.CFOPS,
  'NFE' AS ORIGEM,
  SUM(TOTAL) AS VALOR_TOTAL 
FROM 
  VENDAS
WHERE (EMISSAO >= '06/01/2014'
AND    EMISSAO <= '06/30/2014') 
AND   (VENDAS.CFOPS='5102' OR VENDAS.CFOPS='6102') 
AND    VENDAS.CANCELADO = '0'
GROUP BY VENDAS.CFOPS
 
UNION ALL
 
SELECT 
  '0000',
  'ECF' AS ORIGEM,
  VENDAS_ECF.TOT_VENDA
FROM 
  VENDAS_ECF
WHERE (DATA >= '06/01/2014'
AND    DATA <= '06/30/2014') 
AND VENDAS_ECF.CANCELADO ='0'
Responder

Gostei + 0

31/08/2014

Alisson Santos

Qual a visão que vai ter o seu relatório, pois no caso desse select ele vai retornar tudo que foi NFE tudo que foi ECF e assim por diante. O seu relatório terá que ser separado por origem e ai colocado um grupo para separar cada um que seria legal.
Responder

Gostei + 0

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

Aceitar