Расчет значений между двумя датами - PullRequest
0 голосов
/ 10 февраля 2020

Я хочу отредактировать свой запрос, чтобы суммировать значения между двумя датами, но получать сумму каждого дня. например, если две даты между «2020-01-01» и «2020-01-31», то я хочу значение 31 для каждого дня. но в моем запросе ниже он дает мне сумму за весь месяц

select SUM(`discounts`.`Amount`) 
from `manfz`.`discounts`
inner join `manfz`.`item_sales`
on (`discounts`.`Receipt` = `item_sales`.`Receipt` ) and  (`discounts`.`ProductName` = `item_sales`.`ProductName`)
where ( `item_sales`.`Date` >=  date1 +  And `item_sales`.`Date` <=  date2);

1 Ответ

0 голосов
/ 10 февраля 2020

Если у вас есть хотя бы одна запись в день, вы можете добавить к вашему запросу предложение group by:

select date(s.date) dy, sum(d.amount) sum_amount
from manfz.discounts d
inner join manfz.item_sales s
    on d.receipt = s.receipt and  d.productname = s.productname
where s.date >=  date1 and s.date <=  date2
group by date(s.date)
order by dy;

Примечания:

  • backticks действительно нужны там, где для идентификатора (имена столбцов и таблиц), которые содержат специальные символы

  • скобки не нужны для разделения and условий

  • в вашем предложении where есть странный +, который я бы назвал опечаткой

...