【发布时间】:2021-02-12 19:47:57
【问题描述】:
所以我写了这个查询。我想获取不在第一个数据集中的空数据。
第一次查询返回 34 个用户
第二次查询返回 43 个用户
我需要将额外的 10 个用户添加到第一个
select projects_users_duration.user_id,
projects_users_duration.engineer_name,
COALESCE(sum(projects_users_duration.duration) FILTER ( WHERE projects_users_duration.project_type = 1 ), 0) as billed,
COALESCE(sum(projects_users_duration.duration) FILTER ( WHERE projects_users_duration.project_type != 1 ), 0) as un_billed
from
(select users_in_team.user_id, users_in_team.engineer_name, tt.month, tt.year, t.duration,
(select up.project_type_id from users_project up where id = tt.project_id) as project_type
from (select uu.id as user_id, pgp_sym_decrypt(uu.name, '1234') as engineer_name
from users_team_members as utm
left join users_user uu on uu.id = utm.user_id
where utm.team_id in (1, 2)) as users_in_team
left join timetracker_timesheet tt on users_in_team.user_id = tt.user_id
left join timetracker_timesheetentry t on tt.id = t.timesheet_id
where tt.month in (1)
and tt.year = 2021
and tt.status = 'approved') as projects_users_duration
group by projects_users_duration.user_id, projects_users_duration.engineer_name
select uu.id as user_id, pgp_sym_decrypt(uu.name, '1234') as engineer_name, 0 as billed, 0 as un_billed
from users_team_members as utm
left join users_user uu on uu.id = utm.user_id
where utm.team_id in (1, 2)
第一个数据集也应该包含空数据,但我认为这是因为 where 子句。
【问题讨论】:
标签: sql database postgresql