Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rloliveira.fabio

uso do count() no select.

Recommended Posts

Boa tarde pessoal, sou iniciante em Banco de Dados SQL Server, e gostaria de tirar uma dúvida!

Posso usar a função Count() num mesmo select querendo retornar estes count's com condições diferentes?

Fiz meu banco de teste está assim:

create table tbvenda
(
   idvenda int identity,
   icodcli int
)
go

insert into tbvenda values(123)
insert into tbvenda values(131)
insert into tbvenda values(125)
insert into tbvenda values(null)
insert into tbvenda values(null)


Aí ficaram 3 vendas com clientes associados e 2 vendas com clientes não associados.

Como que eu uso um select, com 2 count's, 1 contando os icodcli is null e o outro icodcli is not null?

 

totalassociados naoassociados

3

Compartilhar este post


Link para o post
Compartilhar em outros sites

assim??

 

 

set nocount on 
 
declare @venda table 
(
   idvenda int identity(1,1),
   icodcli int
)
 
declare @total table (qtde int, associados varchar(1), id int identity(1,1))
 
insert into @venda values(123)
insert into @venda values(131)
insert into @venda values(125)
insert into @venda values(null)
insert into @venda values(null)
 
 
insert into @total
select count(idvenda), 'S'  from @venda where icodcli is not null
 
insert into @total
select count(idvenda), 'N' from @venda where icodcli is null
 
 
select * from @total
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

1) Um Count(coluna) não conta se coluna estiver null

 

2) pode ser feito algo assim, todavia

select sum(case when coluna is null then 1 else 0 end) nulas,
       sum(case when coluna is null then 0 else 1 end) naonulas,
       count(coluna)
from tabela

Usando sum e não count

Compartilhar este post


Link para o post
Compartilhar em outros sites

1) Um Count(coluna) não conta se coluna estiver null

 

2) pode ser feito algo assim, todavia

select sum(case when coluna is null then 1 else 0 end) nulas,
       sum(case when coluna is null then 0 else 1 end) naonulas,
       count(coluna)
from tabela

Usando sum e não count

Muito obrigado Motta, sanou minha dúvida de forma simples e que um iniciante consiga entender. Parabéns.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.