请教:如何根据程序提交的参数来和数据表中的记录计算并显示其值?

chuxinfo chuxinfo 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我想根据程序提交的参数来和数据表中的记录计算并显示其值?
例如:
我有一张学校班级表(Class_info)
class_id class_name class_inyear class_outyar
1 十班 1995 1998
2 十二班 1995 1998
3 十五班 1996 1999
4 十八班 1997 2000
5 二十班 1998 2001
6 三十班 1999 2002
'------------------------------------------------
class_inyear和class_outyar为(int型)代表入学和毕业年份,入学1995也就是1995/09;毕业1998也就是1998/07
假如我现在程序传过来的参数为:1998/09
那么我现在想计算1998/09这个学期位于在校的各班级整个在校学习期间的第几学期
(一年级为:1-2学期)(二年级为:3-4学期)(三年级为:5-6学期),如果毕业的班级就不显示计算其值了
其SQL运算后显示结果应是这样(class_term为我要计算的1998/09位于该年级的第几学期,毕业或没来的就不管了):
class_id class_name class_inyear class_outyear class_term
3 十五班 1996 1999 5
4 十八班 1997 2000 3
5 二十班 1998 2001 1
'-----------------------------------------------
我总结的一点规律:判断程序传过来的参数1998/09,计算出是09月份还是03月份(我只有这两个固定值,因没学年有两个学期)
如果月份是09则class_term=(参数年份1998-入学年份)*2+1 否则class_term=(参数年份1998-入学年份)*2
但具体怎么操作我就不知了.
根据程序传过来的参数计算在校班级是:
select * from Class_info where CONVERT(nvarchar,class_outyear) + '/07' >= '1998/09') AND CONVERT(nvarchar,class_inyear) + '/09' <= '1998/09'

但是我该如何生成class_term呢?请求各位帮忙!
...全文

相关推荐

评论 5
收藏 已收藏
分享
返回顶部
chuxinfo
MS-SQL Server 34,876 成员 254,635 内容