标题:求助:如何自动填写适用年级字段?
只看楼主
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
得分:0 
这么客气干什么。我只是看到自己业内的帖子,而且也可以解决,就出了一下手。再说,我们是同行嘛。
2013-04-19 15:45
lbjdyx
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-12-2
得分:0 
回复 9楼 kiff
谢谢 kiff!希望给解释一下,我也好理解学习一下。如果一年级是2013但是学期是第2学期,2012级的是4学期,2011级的是第6期,2010级的是8学期的课程该怎么改一下?
2013-04-19 21:11
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
得分:0 
以下是引用lbjdyx在2013-4-19 21:11:24的发言:

谢谢 kiff!希望给解释一下,我也好理解学习一下。如果一年级是2013但是学期是第2学期,2012级的是4学期,2011级的是第6期,2010级的是8学期的课程该怎么改一下?
主要是用等差数列与年级的关系。

1、只更新每年级的第1学期。
UPDATE pyfa SET 适用年级=STR(YEAR(DATE())-(VAL(pyfa.开课学期)+1)/2+1) from (select 专业名称,开课学期,MAX(方案版本) 方案版本 from pyfa WHERE ALLTRIM(方案版本)<=ALLTRIM(STR(YEAR(DATE())-(VAL(开课学期)+1)/2+1)) group by 专业名称,开课学期) b WHERE pyfa.专业名称==b.专业名称 AND pyfa.开课学期==b.开课学期 AND pyfa.方案版本==b.方案版本 AND MOD(VAL(pyfa.开课学期),2)=1

2、更新每年级的第1、2学期。(把一句最后的 “ AND MOD(VAL(pyfa.开课学期),2)=1”去丢即可,这里用到 str()自动四舍五入的特点)

UPDATE pyfa SET 适用年级=STR(YEAR(DATE())-(VAL(pyfa.开课学期)+1)/2+1) from (select 专业名称,开课学期,MAX(方案版本) 方案版本 from pyfa WHERE ALLTRIM(方案版本)<=ALLTRIM(STR(YEAR(DATE())-(VAL(开课学期)+1)/2+1)) group by 专业名称,开课学期) b WHERE pyfa.专业名称==b.专业名称 AND pyfa.开课学期==b.开课学期 AND pyfa.方案版本==b.方案版本
2013-04-19 22:18
lbjdyx
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-12-2
得分:0 
谢谢大家的帮助,解决了很大问题,学到了很多知识。
2013-04-19 23:01



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-404798-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.388327 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved