 |
|
เขียน query ได้ แต่บันทึกใน view ไม่ได้ ช่วยด้วย ขึ้นว่า You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near SET @sql := ''; SELECT
ทำใน phpmyadmin MySQLAdministrator สร้างไม่ได้อย่างนี้ค่ะ
Code (SQL)
SET @sql := '';
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'CASE WHEN work_date = ''',
work_date,
''' THEN work_detail else ''-'' END AS `',
work_date, '`'
)
) INTO @sql
FROM persons left join works on persons.person_id = works.person_id
WHERE (WEEKDAY(work_date) BETWEEN 0 AND 4)
AND (WEEK(work_date) = WEEK(now()))
AND (person_active = "Y");
SET @sql = CONCAT('SELECT p.person_name, p.person_position, ', @sql, '
from persons p
inner join works w
on p.person_id = w.work_id
group by p.person_id');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
ตารางค่ะ
Code (SQL)
CREATE TABLE `persons` (
`person_id` int(11) NOT NULL AUTO_INCREMENT,
`person_name` varchar(100) DEFAULT NULL,
`person_position` varchar(100) DEFAULT NULL,
PRIMARY KEY (`person_id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
CREATE TABLE `works` (
`work_id` int(11) NOT NULL AUTO_INCREMENT,
`person_id` int(11) DEFAULT NULL,
`work_date` date DEFAULT NULL,
`work_detail` text,
PRIMARY KEY (`work_id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

Tag : PHP, MySQL
|
ประวัติการแก้ไข 2016-11-02 08:50:43
|
 |
 |
 |
 |
Date :
2016-11-02 08:49:33 |
By :
noonaming |
View :
610 |
Reply :
1 |
|
 |
 |
 |
 |
|
|
|
 |