У меня есть инструкции SUM CASE, которые работают правильно. Проблема в том, что у меня есть несколько записей с похожими критериями, поэтому я бы хотел выбрать последнюю запись по дате.MySQL SUM с CASE выбирает самую последнюю запись по дате
SELECT
SUM(CASE WHEN planning like 'Rotation%' THEN 1 ELSE 0 END +
CASE WHEN assessmentanddata like 'Collects%' THEN 1 else 0 END +
CASE WHEN path like 'Same%' THEN 1 else 0 END +
CASE WHEN place like 'Move%' THEN 1 else 0 END +
CASE WHEN pace like 'Timer%' THEN 1 else 0 END +
CASE WHEN classroommanagement like 'Restating%' THEN 1 else 0 END +
CASE WHEN teacherrole like 'Mini%' THEN 1 else 0 END +
CASE WHEN studentengagement like 'Follow%' THEN 1 else 0 END +
CASE WHEN studentcollaboration like 'Collects%' THEN 1 else 0 END +
CASE WHEN technology like 'Technology%' THEN 1 else 0 END) AS p1
from ruberic where schoolId = 1
Образец из таблицы будут эти 3 колонки даты, SCHOOLID и TEACHERID:
2016-12-05 1 1 -> Эта запись будет хорошо
2016 -12-05 1 4 -> Выбрать только это по сравнению с записью ниже
2016-12-05 1 4
Возможно, пустые голоса связаны с незавершенным вопросом. Нет предложения 'FROM' или' WHERE'. Основываясь на моем понимании предисловия, 'CASE' в основном является отвлечением. См., Например, http://stackoverflow.com/questions/8523374/mysql-get-most-recent-record – alttag
Первое сообщение, обеспокоенное редактированием, пропустило 'from'/'where'. – JWK
Работайте с ним по частям. Если ваш исходный запрос работает, добавьте «когда schoolId и teacherId совпадают» с вашим предложением WHERE. Как только вы это сделаете, проверьте (многие) другие вопросы о том, как захватить самую последнюю запись. – alttag