1
I have 4 tables tbl_Distrito
, tbl_Unidade
, tbl_Servidor
, tbl_Processo
.
tbl_Distrito: Cod_Distrito, Nome_Distrito
tbl_Unidade: Cod_Unidade, Nome_Unidade, Cod_Distrito
tbl_Servidor: Cod_Unidade
tbl_Processo: Cod_Unidade
Basically I need to list all the drives and count how many times each drive appears in the Server table and in the Process table to be able to compare these values:
My consultation:
SELECT DISTRITO.NOME_DISTRITO,
UNIDADE.NOME_UNIDADE,
COUNT(SERVIDOR.UNIDADE_COD_UNIDADE) AS CONTAGEM_1,
COUNT(PROCESSO_HAS_UNIDADE.UNIDADE_COD_UNIDADE_SOLICITADA) AS CONTAGEM_2
FROM (DISTRITO INNER
JOIN(UNIDADE INNER JOIN PROCESSO_HAS_UNIDADE ON
UNIDADE.COD_UNIDADE =
PROCESSO_HAS_UNIDADE.UNIDADE_COD_UNIDADE_SOLICITADA) ON
DISTRITO.COD_DISTRITO = UNIDADE.DISTRITO_COD_DISTRITO)
INNER JOIN SERVIDOR
ON UNIDADE.COD_UNIDADE = SERVIDOR.UNIDADE_COD_UNIDADE
GROUP BY DISTRITO.NOME_DISTRITO, UNIDADE.NOME_UNIDADE;
The problem is that my query is returning equal values to CONTAGEM_1
and CONTAGEM_2
.
The idea was good but also did not work, continued to repeat the values in the two counting columns. I believe I need a sub-volume.
– Diego Andrade
Try to do two in two tables, after you join the joins, the Left Join should bring even if you do not find the foreign key
– André