试图让SQL给我一个静态的总数,不管日期范围如何
我正在处理的问题是在where条款之外发生的付款 如果我有两次付款,分别是2020年10月1日和2020年10月20日,每次20美元,我需要看到总共支付40美元。但是,金额会根据日期过滤器进行更改 如果我选择10/1-10/20,它将显示支付总额为40,但如果我选择10/15-10/20,它将只显示20。我有三列,分别是Bill、Total Paid、amount Payed on date。工资总额应该保持停滞 示例查询试图让SQL给我一个静态的总数,不管日期范围如何,sql,totals,Sql,Totals,我正在处理的问题是在where条款之外发生的付款 如果我有两次付款,分别是2020年10月1日和2020年10月20日,每次20美元,我需要看到总共支付40美元。但是,金额会根据日期过滤器进行更改 如果我选择10/1-10/20,它将显示支付总额为40,但如果我选择10/15-10/20,它将只显示20。我有三列,分别是Bill、Total Paid、amount Payed on date。工资总额应该保持停滞 示例查询 Select b.name as bill, bp.amount as
Select b.name as bill, bp.amount as 'amount paid'
from bill b
left join billpayment bp on b.id=bp.bill_id
where bp.date between Startdate and Enddate
这就是付款,但我希望它将日期范围之外发生的所有付款相加。如果您想要总金额,请在子查询中使用窗口函数:
select bp.*
from (Select b.name as bill, bp.amount as amount_paid,
sum(bp.amount) over () as total_amount
from bill b left join
billpayment bp
on b.id = bp.bill_id
) bp
where bp.date between Startdate and Enddate
因此,我正在运行上面的代码,但是得到了一个“您的SQL语法有错误;请检查与您的MySQL服务器版本对应的手册,以了解在运行时使用接近“()”错误的正确语法。我已经试着玩弄措辞,但仍然无法处理它。使用SEQUEL PRO作为参考。使用正在使用的数据库标记您的问题。