MYSQL Inner Join & Получить значение из подзапроса

Хорошо, я пытаюсь сравнить две таблицы и затем ввести список из трети имен, чтобы получить итоговые значения за предыдущие 10 дней. Запрос выполняется, но дает мне нулевой результат и только один результат. Если я удаляю DATE_ADD и заменяю его на реальную дату из базы данных и вставляю значение для левого предложения вместо использования подзапроса, я получаю то, что ищу эту конкретную дату. То, что я хотел бы сделать, это создать список имен со значениями для этого дня и последних 10 дней. Я уверен, что я не делаю это правильно, поэтому любая помощь приветствуется, так как я новичок в этом. Простые запросы просты, но поставить что-то сложное, как это, является новым для меня.

select sum(t.price) from td.trs as t
inner join td.order as o on o.trsid=t.id
inner join pts.product as p on p.id=o.grp_id
where t.invoice_date=DATE_ADD(CURRENT_DATE(),INTERVAL 10 DAY)
and left(t.mfgid,3) IN (select name from name.list);

2 ответа

Менять

where t.invoice_date=DATE_ADD(CURRENT_DATE(),INTERVAL 10 DAY)

в

where t.invoice_date >= DATE_ADD(CURRENT_DATE(),INTERVAL -10 DAY)

Вы, вероятно, не получаете никаких результатов, потому что вы делаете DATE_ADD к CURRENT_DATE(), который даст вам дату 10 дней в будущем. Если вы хотите получить все товары за последние 10 дней, используйте

WHERE t.invoice_date BETWEEN CURRENT_DATE() AND DATE_SUB(CURRENT_DATE(), INTERVAL 10 DAY)
Другие вопросы по тегам