合同表如何取到我需要的数据!?
时间:2011-11-05
来源:互联网
有一个门面收租金表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月份这个合同是否到了收租时间,应该收多少!
代码我是这样写的:
SQL code
以上代码没有问题:但我想再添加几个功能:
第一个功能,加上一栏表示该合同已经交到什么时候了,比如上例2012-6-30前预交了一个季度的租金,那么他已经交7、8、9月的租金(2012-7-1到2012-9-30),我想加上的一栏就是要显示他已经交到了‘2012-9-30’这个时间。
第二个功能,再加上一栏表示该合同从开始之日到2012年6月已经总共交了多少租金了。(这个要考虑TypeOfPayment,绝对不是简单的用2012月6减合同起始日再乘以MonthRent)
总而言之,我只给出一个时间变量,需要数据库为我智能提供相应的数据!
请问!该怎么完善呢?!
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月份这个合同是否到了收租时间,应该收多少!
代码我是这样写的:
SQL code
select ContractNumber as 合同号,LeaseDateFrom as 合同起始日,LeaseDateTo as 合同终止日,TypeOfPayment as 交租方式, (case when TypeOfPayment='月末预交1、4、7、10') 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)
总而言之,我只给出一个时间变量,需要数据库为我智能提供相应的数据!
请问!该怎么完善呢?!
作者: linjiangxian11 发布时间: 2011-11-05
功能2:
SQL code
SQL code
select 合同号,sum(本月应收) from( select ContractNumber as 合同号,LeaseDateFrom as 合同起始日,LeaseDateTo as 合同终止日,TypeOfPayment as 交租方式, (case when TypeOfPayment='月末预交1、4、7、10') 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 )t group by 合同号
作者: qianjin036a 发布时间: 2011-11-05
感谢您的及时回复!不过您大概没仔细看我的帖子!得到的数据不对!
作者: linjiangxian11 发布时间: 2011-11-05
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28