Ir para conteúdo

Arquivado

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

EDSON FEITOSA

Como realizar um join entre dois select?

Recommended Posts

Primeiramente boa noite, tudo bem com vocês?

Sou novo nessa área de Banco de dados e trabalho não administrando um Banco mas sim realizando muitas consultas, algumas muito fáceis mas outras muito difíceis como essa abaixo:

Como unir os dois select sem perder informação?

SELECT COUNT(FIL_RAZAO_SOCIAL),FIL_RAZAO_SOCIAL
FROM FILIAL ,CAIXA
WHERE CAI_FILIAL=FIL_CODIGO AND CAI_DATA BETWEEN '01/12/2016' and '23/01/2017' AND FIL_ESTADO NOT IN ('SP','SC')
GROUP BY FIL_RAZAO_SOCIAL

SELECT CAI_CODIGO,CAI_CPF,FIL_ESTADO,FIL_RAZAO_SOCIAL
FROM CAIXA,FILIAL
WHERE CAI_FILIAL=FIL_CODIGO AND CAI_DATA BETWEEN '01/12/2016' and '23/01/2017'

Desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites
SELECT COUNT(FIL_RAZAO_SOCIAL),CAI_CODIGO,CAI_CPF,FIL_ESTADO,FIL_RAZAO_SOCIAL
FROM FILIAL ,CAIXA
WHERE CAI_FILIAL=FIL_CODIGO
AND CAI_DATA BETWEEN '01/12/2016' and '23/01/2017'
AND FIL_ESTADO NOT IN ('SP','SC')
GROUP BY CAI_CODIGO,CAI_CPF,FIL_ESTADO,FIL_RAZAO_SOCIAL

E quase a mesma sql

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde,

Tudo bem Motta?

Eu também tentei dessa forma, só que dessa forma não me traz as lojas em uma só linha. Por exemplo: eu tenho 87 lojas, então eu preciso que venho 87 linhas informando quantas vezes cada uma dessas lojas geraram cupons nesse período.

Eu consegui fazer isso retirando tudo e deixando assim

SELECT FIL_RAZAO_SOCIAL,COUNT(FIL_RAZAO_SOCIAL) AS FIL_RAZAO_SOCIAL
FROM FILIAL,CLIENTES,CAIXA
WHERE CAI_CODIGON=CLI_CODIGON AND CAI_FILIAL=FIL_CODIGO and CAI_DATA BETWEEN '01/01/2017' and '23/01/2017' AND FIL_ESTADO NOT IN ('SP','SC') AND FIL_RAZAO_SOCIAL NOT IN ('1043-LOJA VIRTUAL')
GROUP BY FIL_RAZAO_SOCIAL

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim

SELECT ISNULL(COUNT(FIL_RAZAO_SOCIAL),0) AS FIL_RAZAO_SOCIAL, CAI_CODIGO,CAI_CPF,FIL_ESTADO,FIL_RAZAO_SOCIAL
FROM FILIAL  AS F
LEFT JOIN CAIXA AS C
WHERE F.CAI_FILIAL = C.FIL_CODIGO
AND CAI_DATA BETWEEN '01/12/2016' and '23/01/2017'
AND FIL_ESTADO NOT IN ('SP','SC')
GROUP BY CAI_CODIGO,CAI_CPF,FIL_ESTADO,FIL_RAZAO_SOCIAL

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia,

 

Tudo bem Faabiianooc?

 

Eu tentei rodar essa consulta que você passou, mas está dando uma critica de Sintaxe incorreta próxima à palavra-chave 'WHERE'.

Tentei fazer alguma coisa para corrigir, mas não consegui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente deste modo:

SELECT ISNULL(COUNT(FIL_RAZAO_SOCIAL),0) AS FIL_RAZAO_SOCIAL, CAI_CODIGO,CAI_CPF,FIL_ESTADO,FIL_RAZAO_SOCIAL
FROM FILIAL  AS F
LEFT JOIN CAIXA AS C on F.CAI_FILIAL = C.FIL_CODIGO
where 
AND CAI_DATA BETWEEN '01/12/2016' and '23/01/2017'
AND FIL_ESTADO NOT IN ('SP','SC')
GROUP BY CAI_CODIGO,CAI_CPF,FIL_ESTADO,FIL_RAZAO_SOCIAL
	

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde A.Jr,

Tentei rodar a consulta que você sugeriu e deu as criticas abaixo:

FIL_CODIGO E CAI_FILIAL EXISTEM SIM, NÃO ESTOU ENTENDENDO O QUE ESTÁ ACONTECENDO

Mensagem 207, Nível 16, Estado 1, Linha 3
Nome de coluna 'CAI_FILIAL' inválido.
Mensagem 207, Nível 16, Estado 1, Linha 3
Nome de coluna 'FIL_CODIGO' inválido. 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Edson,

 

Tenta rodar desta forma utilizando "Union all", conforme abaixo.

 

SELECT 0 as CAI_CODIGO,
	'' as CAI_CPF,
	'' as FIL_ESTADO,
	COUNT(FIL_RAZAO_SOCIAL) as qtd,
	FIL_RAZAO_SOCIAL
FROM FILIAL ,CAIXA
WHERE CAI_FILIAL=FIL_CODIGO 
	AND CAI_DATA BETWEEN '2016-12-01' and '2017-01-23' 
	AND FIL_ESTADO NOT IN ('SP','SC') 
GROUP BY FIL_RAZAO_SOCIAL

union all

SELECT CAI_CODIGO, 
	CAI_CPF, 
	FIL_ESTADO, 
	0 as qtd
	FIL_RAZAO_SOCIAL
FROM CAIXA,FILIAL
WHERE CAI_FILIAL=FIL_CODIGO 
	AND CAI_DATA BETWEEN '2016-12-01' and '2017-01-23'

Para utilizar o "union all", tem que ter a mesma quantidade de colunas, na mesma ordem e serem do mesmo tipo.

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.