sql 存储过程判断时间并计算合计怎么写
sql 存储过程判断时间并计算合计如何写?
以下是写好的存储过程部分代码
CREATE TABLE #应收资金(
[应收款] [float] default 0,
[第一次收款日期] [datetime] NULL,
[第二次收款日期] [datetime] NULL,
[第三次收款日期] [datetime] NULL,
[保证金实收款日期] [datetime] NULL
)
delete from #应收资金
insert into #应收资金
(
第一次收款日期,
第二次收款日期,
第三次收款日期,
保证金实收款日期
)
select
第一次收款日期,
第二次收款日期,
第三次收款日期,
保证金实收款日期
from GatheringBargain
where 签定日期 between @beginDate and @endDate
现在要判断,如果第一次收款日期小于等于当前日期,应收款为第一次收款金额;如果第二次收款日期小于等于当前日期,应收款为第一次收款金额+第二次收款金额;以此类推;请问如何写语句????感谢!
------解决方案--------------------
以下是写好的存储过程部分代码
CREATE TABLE #应收资金(
[应收款] [float] default 0,
[第一次收款日期] [datetime] NULL,
[第二次收款日期] [datetime] NULL,
[第三次收款日期] [datetime] NULL,
[保证金实收款日期] [datetime] NULL
)
delete from #应收资金
insert into #应收资金
(
第一次收款日期,
第二次收款日期,
第三次收款日期,
保证金实收款日期
)
select
第一次收款日期,
第二次收款日期,
第三次收款日期,
保证金实收款日期
from GatheringBargain
where 签定日期 between @beginDate and @endDate
现在要判断,如果第一次收款日期小于等于当前日期,应收款为第一次收款金额;如果第二次收款日期小于等于当前日期,应收款为第一次收款金额+第二次收款金额;以此类推;请问如何写语句????感谢!
------解决方案--------------------
declare @dt datetime
set @dt=getdate()
select
case when 第一次收款日期<=@dt then 第一次收款金额
when 第二次收款日期<=@dt then 第一次收款金额 +第二次收款金额
when 第三次收款日期<=@dt then 第一次收款金额 +第二次收款金额+第三次收款金额 end as 应收款
from GatheringBargain