• 0
Sign in to follow this  
Kindelis

função em sql

Question

Boa tarde eu estou fazendo uma sql para somar um faturamento, porém no banco de dados tem um campo codigo empresa onde se tem empresa 01 e empresa 02, preciso de uma função que me mostre dentro de uma mesma sql porém separe o faturamento da empresa 01 e da empresa 02 eu tenho a sql abaixo: se eu jogar no WHERE nf_item.cod_empresa ='01' eu consigo o faturamento da empresa 01, eu quero jogar em um mesmo relatorio o faturamento diario da empresa 01 e da empresa 02 e não estou conseguindo.

SELECT SUM(nf_item.val_liq_item)as matriz,wfat_mestre.dat_emissao,nf_item.cod_empresa

FROM nf_item ,wfat_mestre

WHERE nf_item.num_nff =wfat_mestre.num_nff

and nf_item.cod_empresa=wfat_mestre.cod_empresa

and nf_item.cod_empresa ='01'

eu preciso gerar uma sql que fique +/- assim:

Coluna1

Faturamento_01

1000,00

2000,00

300,00

Coluna2

Faturamento_02

500,00

1000,00

100,00

se alguém tiver alguma dúvida ou puder me ajudar por favor eu aceito toda ajuda.

Share this post


Link to post
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Ae beleza?

já tentou usar UNION?

tipo

SELECT SUM(nf_item.val_liq_item)as matriz,wfat_mestre.dat_emissao,nf_item.cod_empresa

FROM nf_item ,wfat_mestre

WHERE nf_item.num_nff =wfat_mestre.num_nff

and nf_item.cod_empresa=wfat_mestre.cod_empresa

and nf_item.cod_empresa ='01'

UNION SELECT SUM(nf_item.val_liq_item)as matriz,wfat_mestre.dat_emissao,nf_item.cod_empresa

FROM nf_item ,wfat_mestre

WHERE nf_item.num_nff =wfat_mestre.num_nff

and nf_item.cod_empresa=wfat_mestre.cod_empresa

and nf_item.cod_empresa ='02'

Edited by toretto_PHP

Share this post


Link to post
Share on other sites
  • 0

o union não deu certo pois ele me mostra o resultado da segunda sql em baixo da outra eu quero por exemplo:

SELECT SUM(nf_item.val_liq_item)as matriz,wfat_mestre.dat_emissao,nf_item.cod_empresa

FROM nf_item ,wfat_mestre

WHERE nf_item.num_nff =wfat_mestre.num_nff

and nf_item.cod_empresa=wfat_mestre.cod_empresa

and nf_item.cod_empresa ='01'

UNION

SELECT SUM(nf_item.val_liq_item)as filial,wfat_mestre.dat_emissao,nf_item.cod_empresa

FROM nf_item ,wfat_mestre

WHERE nf_item.num_nff =wfat_mestre.num_nff

and nf_item.cod_empresa=wfat_mestre.cod_empresa

and nf_item.cod_empresa ='02'

e ficasse a coluna de faturamento da matriz e a da filial do lado

Share this post


Link to post
Share on other sites
  • 0

E ae véio, beleza?

Não te respondi antes pois estava de saida do trabalho. :-) Mas vamos lá à solução:

Vou usar um exemplo simples para ficar mais didatico...

SELECT a.id, b.id
  FROM table1 AS a INNER JOIN table1 AS b
  ON a.id <> b.id
  WHERE a.id = 1 AND b.id = 5;

  1. Selecionei a mesma coluna duas vezes para formar o resultado com duas colunas iguais;
  2. Defini o ALIAS para tabela1 como A e B e fiz o INNER JOIN;
  3. A lógica está aqui: a.id tem que ser DIFERENTE de b.id
  4. Por fim, havendo o valor 1 no alias a.id e o valor 5 no alias b.id

O resultado foi duas colunas com todos os resultados com o id = 1 e outra coluna com resultado com id = 5.

Aqui deu certo dessa forma, tenta fazer o esquema semelhante ao que fiz para você ver o resultado.´

Abraços.

Edited by Micheus
Corrigida a tag LIST.

Share this post


Link to post
Share on other sites
  • 0

Fala grande toretto, eu deixei esta sql um pouco mais composta quero ver se voce me ajuda de novo, eu implementei o inner join porém esta me resultando 0 resultados, segue a sql:

SELECT SUM(item1.val_liq_item)as matriz, SUM(item2.val_liq_item)as filial, wfat_mestre.dat_emissao

FROM wfat_mestre, nf_item as item1 inner join nf_item as item2 ON item1.cod_empresa <> item2.cod_empresa

WHERE item1.num_nff =wfat_mestre.num_nff

AND item2.num_nff =wfat_mestre.num_nff

and item1.cod_empresa=wfat_mestre.cod_empresa

and item2.cod_empresa=wfat_mestre.cod_empresa

and item1.cod_empresa ='01'

and item2.cod_empresa='02'

AND EXISTS(SELECT * FROM nf_mestre , nf_item

WHERE nf_mestre.num_nff = nf_item.num_nff

AND nf_mestre.cod_empresa = nf_item.cod_empresa

AND nf_mestre.ies_situacao <> "C"

AND nf_mestre.dat_emissao between '01/12/2007' and '31/12/2007'

AND nf_mestre.cod_nat_oper IN (SELECT cod_nat_oper FROM nat_operacao

WHERE ies_estatistica = 'T'))

AND EXISTS(SELECT * FROM nf_item_fiscal, nf_item

WHERE nf_item.cod_empresa = nf_item_fiscal.cod_empresa

AND nf_item.num_nff = nf_item_fiscal.num_nff

AND nf_item.num_sequencia = nf_item_fiscal.num_sequencia

AND EXISTS(SELECT * FROM nat_operacao

WHERE nf_item_fiscal.cod_nat_oper = nat_operacao.cod_nat_oper

AND nat_operacao.ies_emite_dupl = "S"))

AND NOT EXISTS(SELECT * FROM item, nf_item

WHERE item.cod_item = nf_item.cod_item

AND item.cod_empresa = nf_item.cod_empresa

AND cod_lin_recei = '99')

group by wfat_mestre.dat_emissao

você sabe o que pode estar impedindo de aparecer os resultados....

valeu cara

Share this post


Link to post
Share on other sites
  • 0
Guest --jefferson --
o union não deu certo pois ele me mostra o resultado da segunda sql em baixo da outra eu quero por exemplo:

SELECT SUM(nf_item.val_liq_item)as matriz,wfat_mestre.dat_emissao,nf_item.cod_empresa

FROM nf_item ,wfat_mestre

WHERE nf_item.num_nff =wfat_mestre.num_nff

and nf_item.cod_empresa=wfat_mestre.cod_empresa

and nf_item.cod_empresa ='01'

UNION

SELECT SUM(nf_item.val_liq_item)as filial,wfat_mestre.dat_emissao,nf_item.cod_empresa

FROM nf_item ,wfat_mestre

WHERE nf_item.num_nff =wfat_mestre.num_nff

and nf_item.cod_empresa=wfat_mestre.cod_empresa

and nf_item.cod_empresa ='02'

e ficasse a coluna de faturamento da matriz e a da filial do lado

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this