Ir para conteúdo

Arquivado

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

rickab7

union all

Recommended Posts

E ai galera, td bom!!!...

 

Eu to com uma duvida de como fazer um UNION ALL, o problema eh q eu tenho uma tabela CLIENTE com os dados: Cod_Cli, Nome_Cli, Data_Nasc. E outra tabela chamada CONJUGE com os dados: Cod_Cli (q eh uma chave estrangeira da tabela CLIENTE), Nome_Conj. O problema eh q eu estou querendo saber quantos clientes são casados e quantos são solteiros. Sei q c o codigo do cliente estiver constado na tabela CONJUGE ele eh casado. Pensando nisso estou tentando fazer o seguinte:

 

SELECT COUNT(Cod_Cli) AS 'CASADO' FROM CLIENTE C INNER JOIN CONJUGE C2 ON C.Cod_Cli = C2.Cod_Cli

so q isso vai aparecer so os casados...como faço para ver os solteiros tbm, sei q vou ter q usaar o UNION ALL, + ñ sei como fazer isso...

 

Valeu Galera

Compartilhar este post


Link para o post
Compartilhar em outros sites

falai, nem precisa fazer union, é só fazer um left, veja:

 

declare @CLIENTE table (Cod_Cli int)declare @CONJUGE table (Cod_Cli int)insert @CLIENTE (Cod_Cli) values (1)insert @CLIENTE (Cod_Cli) values (2)insert @CLIENTE (Cod_Cli) values (3)insert @CONJUGE (Cod_Cli) values (1)SELECT 	COUNT(C2.Cod_Cli) AS 'CASADO', 	COUNT(C.Cod_Cli) - COUNT(C2.Cod_Cli) AS 'SOLTEIRO' FROM @CLIENTE C LEFT JOIN @CONJUGE C2 ON C.Cod_Cli = C2.Cod_Cli

falows

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

falai,

 

veja a diferença do inner e do left nos comentários abaixo:

declare @CLIENTE table (Cod_Cli int)declare @CONJUGE table (Cod_Cli int)insert @CLIENTE (Cod_Cli) values (1)insert @CLIENTE (Cod_Cli) values (2)insert @CLIENTE (Cod_Cli) values (3)insert @CONJUGE (Cod_Cli) values (1)--LEFT: traz todos os registros da tabela cliente, independente se tiver na tabela conjuge, a diferença é que se tiver na tabela conjuge gerá o seu correspondente código, mas se naum tiver vai trazer NULLSELECT * FROM @CLIENTE C LEFT JOIN @CONJUGE C2 ON C.Cod_Cli = C2.Cod_Cli--INNER: com inner somenta vai trazer os registros da tabela cliente se estiverem também na tabela conjugeSELECT * FROM @CLIENTE C INNER JOIN @CONJUGE C2 ON C.Cod_Cli = C2.Cod_Cli

bom final de semana,

t++

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.