I need to make a join between two tables. I need to count employees in each diversity group - it might be women, it might be POC etc. If it is women, I need to join on gender, if it's another group, i need to join on the group name.
TableA is a cte, where I have diversity_group, gender, employee_id, female_flag, additional_filtering_column.
Here's what I tried (without grouping yet):
SELECT
src_tbl.diversity_group
tableA.employee_id
FROM
src_tbl
LEFT JOIN
tableA
ON 1=1
AND
(CASE
WHEN src_tbl.diversity_group = 'Woman' THEN tableA.GENDER = 'Woman'
ELSE (1=1
AND src_tbl.diversity_group = tableA.diversity_group
AND tableA.additional_filtering_column = 1
)
END)
I literally got all nulls, not even one match. And there should be matches.
Another version of what I've tried (I produced a female flag in cte)
AND
(CASE
WHEN src_tbl.diversity_group = 'Woman' AND tableA.FEMALE_FLAG = 1 THEN 1
ELSE 0
END) = 1
AND
(CASE
WHEN src_tbl.diversity_group = tableA.diversity_group AND tableA.additional_filtering_column = 1 THEN 1
ELSE 0
END) = 1
Same results.
I would appreciate any help.