CASE WHEN Mysql

Узнай цену своей работы

Формулировка задачи:

Надо получить суму в диапозоне с определённой ячейки для этого добавляю ниже приведённый селект,
SUM(
CASE 
  WHEN debtorPayments.date BETWEEN :changeStart AND :changeEnd THEN debtorPayments.amount 
  ELSE 0 
END) AS timePeriodPaidAmount')
т.к с конструкцией CASE WHEN не знаком возможно есть какие-то логические ошибки.. почему-то сумма дублируемая получается ...

Решение задачи: «CASE WHEN Mysql»

textual
Листинг программы
SELECT SUM(FIELD) AS total
FROM ....
WHERE `date` BETWEEN .... AND ....

Объяснение кода листинга программы

Ваш запрос похож на SQL-запрос, который использует функцию SUM() для вычисления общего значения поля FIELD. Это поле вероятно содержит числовые данные. Результат этого запроса будет содержать только одно поле, названное total, которое будет содержать общее значение.

  1. SELECT SUM(FIELD) AS total - эта часть запроса говорит о том, что мы хотим вычислить сумму всех значений поля FIELD. Мы используем функцию SUM() для этого. AS total указывает, что мы хотим назвать новое поле total.
  2. FROM ... - здесь нужно указать имя таблицы или представления, из которого мы хотим извлечь данные. Без этой информации невозможно составить полный запрос.
  3. WHEREdateBETWEEN ... AND ... - эта часть запроса говорит о том, что мы хотим выбрать только те строки, где значение поля date находится между определенными датами. Без конкретных дат невозможно точно сказать, что здесь происходит. В итоге, этот запрос вернет одну строку, содержащую только одно поле, которое будет содержать общее значение всех значений поля FIELD за указанный период времени.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4 из 5