Перейти к содержимому


Запрос


Сообщений в теме: 3

#1 TelecomMedia

    Активный участник

  • Пользователи
  • PipPipPip
  • 378 сообщений

Отправлено 09 Февраль 2016 - 09:47

$result = data_select_field(931, "sum(f36490) as cnt_week", "(date(f36490) = BETWEEN DATE_FORMAT(CURDATE(), '%Y-%m-%d') AND DATE_FORMAT(CURDATE() - INTERVAL 7 DAY, '%Y-%m-%d')) AND status=0 AND f24391 != 'КЦ call-sales' AND f22361=",$line['Пользователь']);

Подскажите, где ошибка?
Пытаюсь выбрать значения за период: "Текущий день - 7 дней" (т.е за последнюю неделю включая сегодняшний день)

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 761 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 09 Февраль 2016 - 10:02

"= BETWEEN" - знак "равно" тут явно лишний, слово "BETWEEN" уже само по себе является оператором, как "=", "<" или "LIKE" например.

И не совсем понял, зачем вам функция DATE_FORMAT, CURDATE уже выдает дату в том же формате. Это не ошибка, просто лишняя ненужная операция.

#3 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 761 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 09 Февраль 2016 - 10:09

И третье, оператор between работает между минимальным и максимальным значением, у вас они перепутаны местами (вначале текущая дата, а потом на 7 дней меньше ее). Я не уверен что в этом случае between будет корректно работать (хотя возможно что он автоматом это исправляет, но не факт), и следовательно условие не сработает.

#4 TelecomMedia

    Активный участник

  • Пользователи
  • PipPipPip
  • 378 сообщений

Отправлено 09 Февраль 2016 - 15:18

Спасибо! Получилось





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных