Transforma o resultado de Duas Consultas de Tabelas diferente, em uma única linha...

SQL Server

08/05/2022

Olá...uma ajuda nessa situação


As Duas tabelas possui os campos ID_D,
ID_ANO,
ID_NUM
para fazer relação.

SELECT ID_D, ID_ANO, ID_ANO, COUNT(ID_TIPO_A_F) AS Qtd_Ar
FROM TB_B_A
GROUP BY ID_D, ID_ANO, ID_NUM
HAVING (ID_D = 10335) AND (ID_ANO = 2022) AND (ID_NUM = 325)
Resultado : Qtd_Ar = 2



SELECT ID_D, ID_ANO, ID_NUM, ID_TIPO_P, COUNT(CONT_P) AS QTD_P
FROM TB_B_P
GROUP BY ID_D, ID_ANO, ID_NUM, ID_TIPO_PESSOA, FL_VEIO_AO_PL_P
HAVING (ID_D = 10335) AND (ID_ANO = 2022) AND (ID_NUM = 325)
and (ID_TIPO_P = 1) AND (FL_VEIO_AO_PL_P = 'S')
Resultado : QTD_P = 1

O ideal seria o resultado tipo desta forma:
ID_D = 10335, ID_ANO = 2022, ID_NUM, TB_B_A.Qtd_Ar = 2, TB_B_P.QTD_P = 1
Edivaldo Souza

Edivaldo Souza

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

08/05/2022

tente algo assim:
SELECT
	A.ID_D, A.ID_ANO, A.ID_ANO,
	COUNT(A.ID_TIPO_A_F) AS Qtd_Ar,
	COUNT(B.CONT_P) AS QTD_P
FROM
	TB_B_A A
LEFT JOIN
	TB_B_P B ON B.ID_D = A.ID_D AND B.ID_ANO = A.ID_ANO AND B.ID_NUM = A.ID_NUM
	AND (B.ID_TIPO_P = 1) AND (B.FL_VEIO_AO_PL_P = 'S')
WHERE
	A.ID_D = 10335
	AND A.ID_ANO = 2022
	AND A.ID_NUM = 325
GROUP BY
	A.ID_D, A.ID_ANO, A.ID_NUM

GOSTEI 0
Edivaldo Souza

Edivaldo Souza

08/05/2022

tente algo assim:
SELECT
	A.ID_D, A.ID_ANO, A.ID_ANO,
	COUNT(A.ID_TIPO_A_F) AS Qtd_Ar,
	COUNT(B.CONT_P) AS QTD_P
FROM
	TB_B_A A
LEFT JOIN
	TB_B_P B ON B.ID_D = A.ID_D AND B.ID_ANO = A.ID_ANO AND B.ID_NUM = A.ID_NUM
	AND (B.ID_TIPO_P = 1) AND (B.FL_VEIO_AO_PL_P = 'S')
WHERE
	A.ID_D = 10335
	AND A.ID_ANO = 2022
	AND A.ID_NUM = 325
GROUP BY
	A.ID_D, A.ID_ANO, A.ID_NUM



OPA EMERSON...OBRIGADO MAS NAO DEU CERTO , CREIO QUE É DEVIDO A FORMA QUE FOI CONSTRUIDA AS TABELAS....
NAO SEI SE SERIA O CASO DE SUBQUERY, PEGAR UM RESULTADO VIRTUAL E FAZER JOIN COM A OUTRA TABELA...
GOSTEI 0
POSTAR