Работая над следующим кодом SQL, я не могу найти способ правильно объединить 2 создаваемых CTE, чтобы получить правильное (или, по крайней мере, мое ожидаемое) количество записей.
TEST 1 & TEST 2 просто возвращают записи, которые каждый CTE производит независимо; n & m соответственно.
Я ожидал, что смогу извлечь n записей, используя TEST 3 (LEFT JOIN) или TEST 4 (INNER JOIN), независимо от того, какой тип из объединения, которое я использую (и я пробовал все эквиойны); Я продолжаю получать m записей.
WITH
CTE_ALL_INSPECTIONS AS
(
SELECT
InspectorId,
InspectionetailId
...
FROM ...
WHERE ...
),
CTE_ALL_INSPECTORS AS
(
SELECT DISTINCT
InspectorId,
COUNT(InspectionDetailId) Inspections
FROM CTE_ALL_INSPECTIONS
GROUP BY InspectorId
)
/*
TEST 1:
*/
/*
SELECT * FROM CTE_ALL_INSPECTORS
*/
/*
TEST 2:
*/
/*
SELECT * FROM CTE_ALL_INSPECTIONS
*/
/*
TEST 3:
*/
/*
SELECT
CTE_ALL_INSPECTIONS.*,
CTE_ALL_INSPECTORS.Inspections
FROM
CTE_ALL_INSPECTORS
LEFT JOIN CTE_ALL_INSPECTIONS
ON CTE_ALL_INSPECTIONS.InspectorId = CTE_ALL_INSPECTORS.InspectorId
*/
/*
TEST 4:
*/
/*
SELECT
CTE_ALL_INSPECTIONS.*,
CTE_ALL_INSPECTORS.Inspections
FROM
CTE_ALL_INSPECTORS
INNER JOIN CTE_ALL_INSPECTIONS
ON CTE_ALL_INSPECTIONS.InspectorId = CTE_ALL_INSPECTORS.InspectorId
*/
Как я могу получить нужные записи? или как еще можно присоединиться к этим столам?