Ir para conteúdo
Fórum Script Brasil
  • 0

função em sql


Kindelis

Pergunta

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.

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 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'

Editado por toretto_PHP
Link para o comentário
Compartilhar em outros 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

Link para o comentário
Compartilhar em outros 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.

Editado por Micheus
Corrigida a tag LIST.
Link para o comentário
Compartilhar em outros 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

Link para o comentário
Compartilhar em outros 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

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...