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)