1) Я создаю представление календаря, и я хотел бы добавить столбец, который проверяет, является ли дата в этой строке рабочим днем, если это так, затем заполните 1, иначе 0.
У меня естьтаблица со всеми выходными в Великобритании и в таблице календаря. У меня также есть поле 'dayoftheweek', где 1 и 7 - SUN и SAT.
В настоящее время я пытаюсь использовать оператор case, однако не могу запустить скрипт какполучить следующую ошибку:
Ошибка SQL (1064): в синтаксисе SQL имеется ошибка;проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы узнать правильный синтаксис для использования рядом с '(CASE IF CT.dayofweek = `1` ИЛИ CT.dayofweek =` 7` ИЛИ CT.dt = PH`H' в строке 12 (отредактировано) Это мой сценарий:
ALTER VIEW Calendar_View AS
select `calendar_table`.`dt` AS `date`,
`calendar_table`.`year` AS `year`,
`calendar_table`.`quarter` AS `quarter`,
`calendar_table`.`month` AS `month`,
`calendar_table`.`day` AS `day`,
`calendar_table`.`dayofweek` AS `dayofweek`,
`calendar_table`.`monthName` AS `monthName`,
`calendar_table`.`dayName` AS `dayName`,
`calendar_viewtable`.`week` AS `week`,
`calendar_table`.`isWeekday` AS `isWeekday`
(CASE
WHEN CT.dayofweek = `1` THEN `0'
WHEN CT.dayofweek = `7` THEN `0`
WHEN CT.dt = PH.`Holiday Date` THEN `0`
ELSE `1`
END CASE ) AS IsWorkingDay
from `calendar_table` CT, `Public_Holidays` PH
2) Я также хотел бы добавить другое поле, которое проверяет, является ли дата в календаре текущей датой, и поэтому заполните новое поле с помощью Да,иначе нет (я пытался использовать case case, это не сработало).