sql - 在子查询中使用 where 选择查询
问题描述
我有这样的报告查询选择,
select * from (
select *
FROM
CTIORASQL.time_sheet ts
LEFT JOIN(
SELECT
emp.employee_id,
SUM(
CASE
WHEN emp.main_company_id = 9
THEN
CASE
WHEN sce.schedule_type_id=1 THEN sce.total_minute
END
WHEN sce.activity_id = 21 THEN sce.total_minute
END)/60 utl_tot
FROM CTIORASQL.time_sheet ts
LEFT JOIN CTIORASQL.time_sheet_schedule sce ON ts.time_sheet_id = sce.time_sheet_id
LEFT JOIN CTIORASQL.m_employee emp ON ts.requester_id = emp.employee_id
where ts.schedule_date BETWEEN '02-02-2020' and '07-10-2020'
GROUP BY emp.employee_id
) utl ON utl.employee_id = emp.employee_id
)
where ts.schedule_date BETWEEN '02-02-2020' and '07-10-2020'
我在子查询中有相同的 where,如何将 where 条件设为一个条件?谢谢你在我不能把sql代码放到后端的情况下,我只是使用sqldeveloper工具
解决方案
外部查询是否有任何原因。它似乎与子查询相同。只需对您想要的结果使用子查询:
select *
FROM
CTIORASQL.time_sheet ts
LEFT JOIN(
SELECT
emp.employee_id,
SUM(
CASE
WHEN emp.main_company_id = 9
THEN
CASE
WHEN sce.schedule_type_id=1 THEN sce.total_minute
END
WHEN sce.activity_id = 21 THEN sce.total_minute
END)/60 utl_tot
FROM CTIORASQL.time_sheet ts
LEFT JOIN CTIORASQL.time_sheet_schedule sce ON ts.time_sheet_id = sce.time_sheet_id
LEFT JOIN CTIORASQL.m_employee emp ON ts.requester_id = emp.employee_id
where ts.schedule_date BETWEEN '02-02-2020' and '07-10-2020'
GROUP BY emp.employee_id
) utl ON utl.employee_id = emp.employee_id
如果您对外部查询有任何其他目的,请解释。
推荐阅读
- c# - 用 mathnet 解决一般特征问题
- jquery - 如何在jQuery代码中使用用角度定义的数组
- javascript - 如何调试 JavaScript 对象问题?
- java - java listFiles() 只返回文件
- http - ASP.Net Core 2(.1.2) - 无需信任客户端即可保存用户数据
- javascript - 如何在 Angular Typescript 中访问此关键字
- javascript - 用 JavaScript 写这个有没有一种不那么复杂的方式?
- php - PHP cron 需要路径问题
- jquery - 如何使用jQuery检查数据属性是否存在选择标签选项
- swift - 计时器计数但不显示