Мне нужно заполнить Amounts
для отображения по диапазону дат в месяц. Для того, чтобы проиллюстрировать, пожалуйста, взгляните на следующую таблицу:Совокупность нескольких столбцов на основе определенного диапазона дат за месяц
Invoice_Payment
Customer_id Invoice_no Invoice_date Amount
---------------------------------------------------
10 10023 2016-07-08 60
10 10018 2016-08-04 90
11 10016 2016-07-01 110
11 10021 2016-07-05 120
12 10028 2016-07-11 10
12 10038 2016-07-31 5
Как вы можете заметить, я хочу, чтобы сгруппировать их на основе Customer_id
и отображения даты, как начала до конца. Кроме того, это нужно делать только за каждый месяц.
После запроса я пытался до сих пор:
select Customer_id, (mindate + ' to ' + maxdate) Date_Range, Amount
from (
select Customer_id, sum(Amount) Amount, min(Invoice_date) mindate, max(Invoice_date) maxdate
from Invoice_Payment
group by Customer_id
) I ;
Из выше запроса я получаю Output
как:
Customer_id Date_Range Amount
10 2016-07-08 to 2016-08-04 150
11 2016-07-01 to 2016-07-05 230
12 2016-07-11 to 2016-07-31 15
Пожалуйста, проверьте это .. SQL Fiddle Working Demo
Скажем Customer_id = 10
, у которого есть Invoice_date в July,2016
и August,2016
. Мне нужно суммировать все платежи этого конкретного Клиента за июль и август отдельно в пределах определенного диапазона дат. Но я получаю сумму Amount
всего Invoice_date
из вышеперечисленного.
Желаемый результат:
Customer_id Date_Range Amount
10 2016-07-08 to 2016-07-08 60
10 2016-08-04 to 2016-08-04 90
11 2016-07-01 to 2016-07-05 230
12 2016-07-11 to 2016-07-31 15
Как я могу получить за это? Любая помощь будет принята с благодарностью.
Он отлично работает, теперь спасибо! –