sql group by 左连接
失败语句:错误:ORA-00979:不是 GROUP BY 表达式
select org_division.name , org_department.name , org_surveylog.division_code as divisionCode,org_surveylog.department_code as departmentCode , max(org_surveylog.actiondate) from org_surveylog
left join org_division on (org_surveylog.division_code= org_division.division_code and org_surveylog.SURVEY_NUM= org_division.survey_num)
left join org_department on (org_surveylog.department_code = org_department.department_code and org_surveylog.SURVEY_NUM = org_department.survey_num)
group by org_surveylog.division_code,org_surveylog.department_code
,但下面是可以的,
select org_surveylog.division_code as divisionCode,org_surveylog.department_code as departmentCode , max(org_surveylog.actiondate) from org_surveylog
left join org_division on (org_surveylog.division_code= org_division.division_code and org_surveylog.SURVEY_NUM= org_division.survey_num)
left join org_department on (org_surveylog.department_code = org_department.department_code and org_surveylog.SURVEY_NUM = org_department.survey_num)
group by org_surveylog.division_code,org_surveylog.department_code
当我需要显示 org_division.name 、 org_department.name 的值时,如何使用带有左连接的 group by ?
fail statement:Error: ORA-00979: not a GROUP BY expression
select org_division.name , org_department.name , org_surveylog.division_code as divisionCode,org_surveylog.department_code as departmentCode , max(org_surveylog.actiondate) from org_surveylog
left join org_division on (org_surveylog.division_code= org_division.division_code and org_surveylog.SURVEY_NUM= org_division.survey_num)
left join org_department on (org_surveylog.department_code = org_department.department_code and org_surveylog.SURVEY_NUM = org_department.survey_num)
group by org_surveylog.division_code,org_surveylog.department_code
but below is ok
select org_surveylog.division_code as divisionCode,org_surveylog.department_code as departmentCode , max(org_surveylog.actiondate) from org_surveylog
left join org_division on (org_surveylog.division_code= org_division.division_code and org_surveylog.SURVEY_NUM= org_division.survey_num)
left join org_department on (org_surveylog.department_code = org_department.department_code and org_surveylog.SURVEY_NUM = org_department.survey_num)
group by org_surveylog.division_code,org_surveylog.department_code
how to use group by with left join when i need to show value of org_division.name , org_department.name ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要将 GROUP BY 更改为
From Oracle Select Statements : Select Statement With GROUP BY Clause
您您会注意到您需要在 GROUP BY 语句中包含非聚合列。
You need to change your GROUP BY to
From Oracle Select Statements : Select Statement With GROUP BY Clause
You will notice that you need to include the non aggregated columns in the GROUP BY statement.