积极答复者
合同表如何取到我需要的数据!?

问题
-
--有一个门面收租金表ContractTable,它包含下列字段:1.ContractNumber(合同号,nvarchar):主键2.Address(地址,nvarchar):3.LeaseDateFrom(合同起始日,Date)4.LeaseDateTo(合同终止日,Date):LeaseDateTo和LeaseDateFrom的时间差一般为1年或2年,也就是每次租1年或2年5.MonthRent(月租金,decimal)6.TypeOfPayment(交租方式,nvarchar):分为两种交租方式,第一种:‘月末前预交’,要对方提前一个月交租,比如现在是11月,因为是‘预交’,所以我要收对方12月份的租金,这种很简单。第二种是‘季度末预交’,也就是3个月交一次租金(MonthRent*3),那么根据LeaseDateFrom(合同起始日)确定他每年哪几个月要交一个季度的租金。因此,‘季度末预交’要细化为三种情况,分别是‘季度末预交1、4、7、10’、‘季度末预交2、5、8、11’、‘季度末预交3、6、9、12’,后面的数字是表示对方应该在哪几个月交租。-------比如:有一份合同,它的LeaseDateFrom:2011-07-01,LeaseDateTo:2013-06-30,期限为两年,TypeOfPayment:季度末预交3、6、9、12(因为LeaseDateTo是2011-07-01,那么对方第一次应该在6月份交租,且每隔1个季度交一次,以后就是每年的3、6、9、12月交租)就以上例为例:我现在想预测一下2012年6月份这个合同是否到了收租时间,应该收多少!代码我是这样写的:
select ContractNumber as 合同号,LeaseDateFrom as 合同起始日,LeaseDateTo as 合同终止日,TypeOfPayment as 交租方式, (case when TypeOfPayment='月末预交' then MonthRent when TypeOfPayment='季度末预交1、4、7、10' then 0 when TypeOfPayment='季度末预交2、5、8、11' then 0 when TypeOfPayment='季度末预交3、6、9、12' then MonthRent*3 else 0 end) as 本月应收 from ContractTable
以上代码没有问题:但我想再添加几个功能:----第一个功能,加上一栏表示该合同已经交到什么时候了,比如上例2012-6-30前预交了一个季度的租金,那么他已经交7、8、9月的租金(2012-7-1到2012-9-30),我想加上的一栏就是要显示他已经交到了‘2012-9-30’这个时间。-----第二个功能,再加上一栏表示该合同从开始之日到2012年6月已经总共交了多少租金了。(这个要考虑TypeOfPayment,绝对不是简单的用2012月6减合同起始日再乘以MonthRent)-----总而言之,我只给出一个时间变量,需要数据库为我提供相应的数据!-----请问!该怎么完善呢?!
C# 菜鸟中的雏鸟!提的问题也许很幼稚,但我是认真的。希望看在党国的面子上拉兄弟一把!
- 已编辑 linjiangxian11 2011年11月6日 3:40
答案
-
你好,
如果要加上第一个功能:合同已经交到什么时候了,需要在table中加上一列来记录预交月租的时间。然后根据月租金来判断是月末预交还是季度末预交。
第二个功能: 如果有了记录预交月租的时间,在查出合同号和地址的情况下,倒序排列预交时间那列,判断最后一次的租金是到什么时候的,再将符合条件的累加,算出总金额。
Please remember to mark the replies as answers if they help and unmark them if they provide no help. This can be beneficial to other community members reading the thread.- 已编辑 Molly Chen_Moderator 2011年11月10日 3:23
- 已标记为答案 Molly Chen_Moderator 2011年11月14日 2:10
全部回复
-
你好,
如果要加上第一个功能:合同已经交到什么时候了,需要在table中加上一列来记录预交月租的时间。然后根据月租金来判断是月末预交还是季度末预交。
第二个功能: 如果有了记录预交月租的时间,在查出合同号和地址的情况下,倒序排列预交时间那列,判断最后一次的租金是到什么时候的,再将符合条件的累加,算出总金额。
Please remember to mark the replies as answers if they help and unmark them if they provide no help. This can be beneficial to other community members reading the thread.- 已编辑 Molly Chen_Moderator 2011年11月10日 3:23
- 已标记为答案 Molly Chen_Moderator 2011年11月14日 2:10