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

Como efetuar a soma de um count (UNION)


Bgorm

Pergunta

Pessoal,

Sou iniciante, e gostaria de saber como inserir uma linha na tabela com o valor total das "Quantidades".

Retorno da query:

Pendencias Quantidades

Reclamação 193

Solicitação 2047

T O T A L ???

Query:

select 'Reclamação' as "Pendencias"

,count(recl.id_CHAM_CD_Chamado) as "Quantidade"

from dbo.CS_NGTB_Chamado_CHAM cham

,dbo.CS_NGTB_Reclamacao_RECL recl

where cham.id_CHAM_CD_Chamado = recl.id_CHAM_CD_Chamado

and (recl.RECL_DH_Encerramento is null or recl.RECL_DH_Encerramento = '1900/01/01')

and cham.CHAM_DH_Inicial >= '2009/08/01'

and cham.CHAM_DH_Inicial <= '2009/08/15'

union

select 'Solicitação' as " Pendencias"

,count(soli.id_CHAM_CD_Chamado) as "Quantidade"

from dbo.CS_NGTB_Chamado_CHAM cham

,dbo.CS_NGTB_Solicitacao_SOLI soli

where cham.id_CHAM_CD_Chamado =* soli.id_CHAM_CD_Chamado

and (soli.SOLI_DH_Encerramento is null or soli.SOLI_DH_Encerramento = '1900/01/01')

and cham.CHAM_DH_Inicial >= '2009/08/01'

and cham.CHAM_DH_Inicial <= '2009/08/15'

UNION

select 'T O T A L'

,sum

...

Aguardo um retorno!

Obrigada a Todos!

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Olá, tudo bem? Dei uma olhada no código e fiz algumas alterações... :.)

Seguinte: ao invés de fazer union, preferi criar uma temporária em tempo de execução. Retirei o UNION e coloquei as informações em apenas 1 linha. Ai vai ficar Reclamação, Solicitação e total. Como está fazendo count, caso a query não resgate nenhuma informação, coloca-se 0 (zero). Postei o script alterado logo abaixo.

Como não tenho como rodá-lo, não deu pra testar... rs. Copia e dá uma olhada.

Outra coisa:

Uma dica: vi que utiliza a sintaxe =*. No sql 2000 é tranquilo, mas no sql 2005 esta sintaxe é descontinuada. você terá que usar o left ou right, ou forçar o 2005 utilizar esta sintaxe (que perde em performance).

Copia todo o script e roda. Depois me fala se funcionou... espero ter ajudado.

---------------------------------------------------------------------------------------

declare @tmp table (Reclamacao int, Solicitacao int, total int)

insert into @tmp (Reclamacao)

select count(recl.id_CHAM_CD_Chamado)

from dbo.CS_NGTB_Chamado_CHAM cham

,dbo.CS_NGTB_Reclamacao_RECL recl

where cham.id_CHAM_CD_Chamado = recl.id_CHAM_CD_Chamado

and (recl.RECL_DH_Encerramento is null or recl.RECL_DH_Encerramento = '1900/01/01')

and cham.CHAM_DH_Inicial >= '2009/08/01'

and cham.CHAM_DH_Inicial <= '2009/08/15'

update @tmp set Solicitacao=(select count(soli.id_CHAM_CD_Chamado)

from dbo.CS_NGTB_Chamado_CHAM cham

,dbo.CS_NGTB_Solicitacao_SOLI soli

where cham.id_CHAM_CD_Chamado =* soli.id_CHAM_CD_Chamado

and (soli.SOLI_DH_Encerramento is null or soli.SOLI_DH_Encerramento = '1900/01/01')

and cham.CHAM_DH_Inicial >= '2009/08/01'

and cham.CHAM_DH_Inicial <= '2009/08/15')

update @tmp set total=((select Reclamacao from @tmp) + (select Solicitacao from @tmp))

select * from @tmp

---------------------------------------------------------------------------------------

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
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...