mysql - 错误代码:1064 - 我的 SQL:动态行到列
问题描述
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'MAX(case when subject_details.subject_Name = ''',
subject_details.subject_Name,
''' then (marks.internal_Marks+marks.external_Marks) End) AS ',
REPLACE(subject_details.subject_Name, ' ', '')
)
) INTO @sql
FROM subject_details;
SET @sql = CONCAT('SELECT stud.student_Name,',@sql , 'FROM marks
INNER JOIN student_details AS stud ON stud.pkey = marks.fk_Student_Name
INNER JOIN subject_details ON subject_details.pkey = marks.fk_Subject_Name
INNER JOIN dept_name ON dept_name.pkey = subject_details.fk_Dept_Name
GROUP BY stud.student_Name');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
当我运行代码时,我收到此错误:
错误代码:1064
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“FROM 标记 INNER JOIN student_details AS stud ON stud.pkey = mark.fk_Student_Na”附近使用正确的语法
解决方案
推荐阅读
- html - HTML 网站不会随移动设备上的视口代码缩放
- android - Eclipse Maven 项目中的 ThreeTenABP
- function - How to refer to a dynamically named variable with a variable?
- c# - 一种序列化方法会产生内存不足错误,另一种则不会
- activejdbc - 如何将 LazyList 的 toJson 方法与 json 数组一起使用?
- php - behat.yml 抛出错误:保留的指示符“%”不能开始一个普通的标量;
- javascript - JSON 值未定义?
- pandas - 计算滚动(平均差)^2 熊猫
- phantomjs - vk.com 检测 phantomjs
- excel - 使用找到的行单元格和找到的列单元格查找单元格