2016-12-06 3 views
0

Я пытаюсь создать представление, которое отображает все последние сборы на месяц до настоящего времени, а также суммирует поздние сборы в нижней части результата.Сумма столбца в созданном представлении с использованием MySQL

Это сценарий, я написал для отображения сведений о конце сборов:

select g.game_id, g.game_name, 
     if(datediff(r.return_date, r.due_date) > 0, 
      datediff(r.return_date, r.due_date) * g.overdue_charge_per_day, 
      0) as Total_Overdue_Charges_MTD  
from rental as r 
left join game as g 
on r.game_id = g.game_id 
where month(r.return_date)=month(now()) 

Это дает мне следующий вывод:

game_id game_name Total_Overdue_Charges_MTD  
    6  GTA V    4.00 
    7  Tony Hawk   15.00 

Я назвал этот вид, как overduepaymentMTD.

То, что я хотел бы выход, чтобы выглядеть как это

game_id game_name Total_Overdue_Charges_MTD Total  
    6  GTA V    4.00   19.00 
    7  Tony Hawk   15.00 

Есть ли способ включения суммы total_overdue_charges_MTD в самом представлении?

+0

ум, форматирующий вас, чтобы сделать его более доступным. – Rahul

+0

Извините, думал, что это сделает это автоматически –

+1

Я сделал это. Вам нужно открепить код четырьмя пробелами. –

ответ

0

вы можете легко вставить. он имеет тот же синтаксис, что и вставка в таблицу. использовать следующий запрос поможет вам сделать то, что вы хотите

insert into overduepaymentMTD(game_name,Total_Overdue_Charges_MTD) 
select "Total" as game_name,sum(if(datediff(r.return_date, r.due_date) > 0, datediff(r.return_date, r.due_date) * g.overdue_charge_per_day, 0))as Total_Overdue_Charges_MTD from rental as r left join game as g on r.game_id = g.game_id where month(r.return_date)=month(now()) 

работать этот game_id запрос, GAME_NAME должен иметь значение по умолчанию, или вы должны добавить им значения в запросе.

+0

Итак, я дал мне всего лишь столбец просроченных сборов, это я могу сделать, но мне нужно подробно рассказать о некоторых поздних взносах и суммировать их в том же представлении –

+0

после того, как вы создали представление overduepaymentMTD, используя запрос, который вы написали в своем вопросе , вы должны выполнить мой запрос. после этого, если вы выберете * из представления, будет представлена ​​подробная информация о отдельных просроченных взносах, а последняя строка будет общей | sum_value – reza

+0

Когда я пытаюсь вставить ваш запрос, я получаю ошибку «Превышение целевой таблицыMTD вставки не вставляется - в –

0

Я не мог понять, как это сделать, вместо этого я создал вид просроченных сборов за текущий месяц, а затем суммировал просроченные расходы по столбцу.

Смежные вопросы