2017-03-27 63 views
0

我在下面的代碼面臨的問題:消息:操作數應包含1列(S)

操作數應包含1列(S)

MySQL代碼:

SELECT classes.id, 
    concat(classes.grade_name+"/"+classes.section_name+"/"+classes.class_order) AS classname, 

(SELECT sum(points) 
FROM studentspoints 
WHERE points_type = 1 
    AND studentspoints.grade_order = classes.grade_order 
    AND studentspoints.class_order = classes.class_order) AS p1, 

(SELECT sum(points) 
FROM studentspoints 
WHERE points_type = 2 
    AND studentspoints.grade_order = classes.grade_order 
    AND studentspoints.class_order = classes.class_order) AS p2 
FROM classes 
GROUP by(grade_order,class_order) 
+1

'+ classes.section_name +'你想在這裏做數學?我對此表示懷疑;使用點和其他人一樣。 –

+0

這是mysql,我認爲它是逗號而不是點。 – aynber

+0

@aynber *是啊*,你是在什麼;-) –

回答

1

我想你使用MySQL的concat功能等

CONCAT(classes.grade_name, "/", classes.section_name, "/", classes.class_order) as classname 

https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_concat

你也可以簡單地使用CONCAT_WS這樣的:

CONCAT_WS("/", classes.grade_name, classes.section_name) 

https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_concat-ws

+0

我改變concat ..並將加號標記替換爲逗號,但問題仍然存在。 – Abdulaziz

相關問題