Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 非分组表达式错误(Oracle)_Sql_Oracle_Oracle Sqldeveloper - Fatal编程技术网

Sql 非分组表达式错误(Oracle)

Sql 非分组表达式错误(Oracle),sql,oracle,oracle-sqldeveloper,Sql,Oracle,Oracle Sqldeveloper,下面是我在oracle 12c中的sql查询。我正在使用sqlplus。它提示错误“ORA-00979:不是表达式分组”。我不知道这里什么时候出了问题。请帮忙 PROMPT Type the speciality ACCEPT speciality PROMPT "Speciality: " SELECT assignment.doctor_id, doctors.name, MAX(assignment.end_assignment) AS end_contract, (SELECT doct

下面是我在oracle 12c中的sql查询。我正在使用sqlplus。它提示错误“ORA-00979:不是表达式分组”。我不知道这里什么时候出了问题。请帮忙

PROMPT Type the speciality
ACCEPT speciality PROMPT "Speciality: "
SELECT assignment.doctor_id, doctors.name, MAX(assignment.end_assignment) AS end_contract,
(SELECT doctor_availability.end_availability
 FROM doctor_availability
 JOIN doctor_specialities ON doctor_specialities.doctor_id = doctors.id
 AND UPPER(doctor_specialities.specialities) like UPPER('%&speciality%'))
FROM assignment
JOIN doctors ON doctors.id = assignment.doctor_id
JOIN doctor_availability ON doctor_availability.doctor_id = assignment.doctor_id
WHERE doctor_availability.end_availability > 'end_contract'
GROUP BY assignment.doctor_id;

您需要在group by中包含所有选择值

PROMPT Type the speciality
ACCEPT speciality PROMPT "Speciality: "
SELECT assignment.doctor_id, doctors.name, MAX(assignment.end_assignment) AS end_contract,
(SELECT doctor_availability.end_availability
FROM doctor_availability
JOIN doctor_specialities ON doctor_specialities.doctor_id = doctors.id
AND UPPER(doctor_specialities.specialities) like UPPER('%&speciality%'))
FROM assignment
JOIN doctors ON doctors.id = assignment.doctor_id
JOIN doctor_availability ON doctor_availability.doctor_id = assignment.doctor_id
WHERE doctor_availability.end_availability > 'end_contract'
GROUP BY assignment.doctor_id, doctors.name, doctor_availability.end_availability;

您需要在group by中包含所有选择值

PROMPT Type the speciality
ACCEPT speciality PROMPT "Speciality: "
SELECT assignment.doctor_id, doctors.name, MAX(assignment.end_assignment) AS end_contract,
(SELECT doctor_availability.end_availability
FROM doctor_availability
JOIN doctor_specialities ON doctor_specialities.doctor_id = doctors.id
AND UPPER(doctor_specialities.specialities) like UPPER('%&speciality%'))
FROM assignment
JOIN doctors ON doctors.id = assignment.doctor_id
JOIN doctor_availability ON doctor_availability.doctor_id = assignment.doctor_id
WHERE doctor_availability.end_availability > 'end_contract'
GROUP BY assignment.doctor_id, doctors.name, doctor_availability.end_availability;

通常,如果使用GROUPBY子句,则必须将所选的所有字段放在其中,而不使用聚合函数。在本例中,您选择assignment.doctor\u id,doctors.name,但不使用聚合函数,但在group by子句中,您只有assignment.doctor\u id。 试试这个


通常,如果使用GROUPBY子句,则必须将所选的所有字段放在其中,而不使用聚合函数。在本例中,您选择assignment.doctor\u id,doctors.name,但不使用聚合函数,但在group by子句中,您只有assignment.doctor\u id。 试试这个


您需要按医生进行分组。姓名以及分配。医生id是否可以在此处:选择医生可用性。结束可用性从医生可用性加入医生专业上的医生专业。医生id=医生id您必须使用医生可用性。医生id因为您加入表格医生可用性与表格医生可用性您需要按医生进行分组。姓名以及分配。医生id是否可以在此处:选择医生可用性。结束可用性来自医生可用性加入医生专用性上的医生专用性。医生id=医生id=您必须使用的医生iddoctor\u availability.doctors.id因为您将表doctor\u availability与表doctor\u specialities连接在一起,我先前尝试添加doctors.name,但仍然出现相同的错误。我用错误屏幕截图更新了。这是因为select语句中也有一个子select,而group by语句中没有该子select。@Matt,它仍然是相同的错误。@t3es屏幕截图请再次使用附加的group by,我之前尝试过添加doctors.name,但仍然是相同的错误。我用错误屏幕截图更新了。这是因为select语句中也有一个子select,而group by语句中没有该子select。@马特,还是同一个错误。@t3es屏幕截图再次显示错误,请在其中添加group by