CASE WHEN Mysql
Формулировка задачи:
Надо получить суму в диапозоне с определённой ячейки для этого добавляю ниже приведённый селект,
т.к с конструкцией CASE WHEN не знаком возможно есть какие-то логические ошибки.. почему-то сумма дублируемая получается ...
SUM( CASE WHEN debtorPayments.date BETWEEN :changeStart AND :changeEnd THEN debtorPayments.amount ELSE 0 END) AS timePeriodPaidAmount')
Решение задачи: «CASE WHEN Mysql»
textual
Листинг программы
SELECT SUM(FIELD) AS total FROM .... WHERE `date` BETWEEN .... AND ....
Объяснение кода листинга программы
Ваш запрос похож на SQL-запрос, который использует функцию SUM() для вычисления общего значения поля FIELD. Это поле вероятно содержит числовые данные. Результат этого запроса будет содержать только одно поле, названное total, которое будет содержать общее значение.
SELECT SUM(FIELD) AS total- эта часть запроса говорит о том, что мы хотим вычислить сумму всех значений поля FIELD. Мы используем функцию SUM() для этого.AS totalуказывает, что мы хотим назвать новое полеtotal.FROM ...- здесь нужно указать имя таблицы или представления, из которого мы хотим извлечь данные. Без этой информации невозможно составить полный запрос.WHEREdateBETWEEN ... AND ...- эта часть запроса говорит о том, что мы хотим выбрать только те строки, где значение поляdateнаходится между определенными датами. Без конкретных дат невозможно точно сказать, что здесь происходит. В итоге, этот запрос вернет одну строку, содержащую только одно поле, которое будет содержать общее значение всех значений поля FIELD за указанный период времени.