以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 数字转年级 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=101831) |
-- 作者:Liangcai -- 发布时间:2017/6/8 9:21:00 -- 数字转年级 Dim t As Table = e.Form.controls("Table1").Table Dim ary() As String = Functions.Execute("Xueqi") Dim m As Integer = val(Left(ary(1),4)) t.Fill("Sel ect b.学期,b.学生编号,班级,IIF(\'"& ary(1) &"\' Like \'%春%\',IIF(b.学期 Like \'%春%\',\'"& m &"\'- val(Left(b.学期,4)) + val(Left(班级,1)),IIF(b.学期 Like \'%秋%\',\'"& m &"\'- val(Left(b.学期,4)) + val(Left(班级,1))) - 1),IIF(\'"& ary(1) &"\' Like \'%秋%\',IIF(b.学期 Like \'%春%\',\'"& m &"\'- val(Left(b.学期,4)) + val(Left(班级,1)) + 1,IIF(b.学期 Like \'%秋%\',\'"& m &"\'- val(Left(b.学期,4)) + val(Left(班级,1)))))) As 年级 From ({学生基本信息} a Inner JOIN {缴费信息} b ON a.学生编号 = b.学生编号) LEFT JOIN (Sel ect 学期,学生编号,与家长关系,学生原因,家长原因,报名审批 From {违规信息} WHERE (报名审批 = \'拒收\'Or 报名审批 = \'待收\')) c ON b.学期 = c.学期 And b.学生编号 = c.学生编号 WHERE 缴费项目 = \'学费\' And IIF(\'"& ary(1) &"\' Like \'%春%\',IIF(b.学期 Like \'%春%\',\'"& m &"\'- val(Left(b.学期,4)) + val(Left(班级,1)),IIF(b.学期 Like \'%秋%\',\'"& m &"\'- val(Left(b.学期,4)) + val(Left(班级,1))) - 1) < 9,IIF(\'"& ary(1) &"\' Like \'%秋%\',IIF(b.学期 Like \'%春%\',\'"& m &"\'- val(Left(b.学期,4)) + val(Left(班级,1)) + 1,IIF(b.学期 Like \'%秋%\',\'"& m &"\'- val(Left(b.学期,4)) + val(Left(班级,1)))) <10))And c.学生编号 Is Not Null ORDER BY 年级","数据库",True) 学期格式是:2016年春季、2016年秋季.....,班级是;101、102....., 现学期减原学期加班级开头得现年级,把数字转大写,比如:val(Left(ary(1),4)) - val(Left(b.学期,4)) + val(Left(班级,1)) = 现年级,2017年春季-2015年秋季 +301 -1=4,将4转成 “4年级” 请指教,谢谢
[此贴子已经被作者于2017/6/8 9:25:05编辑过]
|
-- 作者:有点蓝 -- 发布时间:2017/6/8 9:56:00 -- Cstr(val(Left(ary(1),4)) - val(Left(b.学期,4)) + val(Left(班级,1))) + \'年级\' |
-- 作者:Liangcai -- 发布时间:2017/6/8 11:16:00 -- 1年级、2年级...,能转成:一年级、二年级.....吗 |
-- 作者:有点蓝 -- 发布时间:2017/6/8 11:30:00 -- sql里没有办法转换的,到程序里处理 |
-- 作者:Liangcai -- 发布时间:2017/6/8 12:28:00 -- 好的,谢谢 |