我试图创建一个视图,显示当月的所有滞纳金,但也会计算结果底部的滞纳金。
这是我写的脚本,用于显示滞纳金的详细信息:
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 :(得分: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必须具有默认值,或者您必须在查询中为它们添加值。
答案 1 :(得分:0)
我无法弄清楚如何做到这一点,而是创建了当月的逾期费用视图,然后总结了过期费用。