表中字段计算问题????

cgcfjxyjxy 2003-12-22 05:05:35
我有一个表,其中存储着“基数”字段“出生年月”字段,与“帐户”字段,请问我要实现如果此人年龄为45周岁以上哪么”帐户”字段=“基数"*0.3,如果为45周岁以下那么
”帐户”字段=“基数"*0.45。

另外怎么实现两个时间字段相减后,得出的是此人的年龄,比如说45,用什么函数???
...全文
46 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
pbsql 2003-12-23
  • 打赏
  • 举报
回复
xiaoliaoyun(流浪的云)写完善了!
xiaoliaoyun 2003-12-22
  • 打赏
  • 举报
回复
update 表 set 帐户=
case
when (datediff(year,出生年月,getdate())>45) then 基数*0.3
when (datediff(year,出生年月,getdate())<45) then 基数*0.45
else 基数*0.2
end
--注:datediff(year,出生年月,getdate())是日期函数,得到两个日期相差的年数
Rasky 2003-12-22
  • 打赏
  • 举报
回复
请问用什么数据库?
Rasky 2003-12-22
  • 打赏
  • 举报
回复
update 表 set 帐户=(case when (datediff(year,出生年月,getdate())>45) then 基数*0.3 when (datediff(year,出生年月,getdate())<45) then 基数*0.45 when (datediff(year,出生年月,getdate())=45) then 基数*0.2 end)

cgcfjxyjxy 2003-12-22
  • 打赏
  • 举报
回复
update 表 set 帐户=(case (datediff(year,出生年月,getdate())>45) when true 基数*0.3 else 基数*0.45 end)

能解释一下上面那条语名的意思吗???

如果条件是这样:>45岁 帐户=基数*0.3
<45岁 帐户=基数*0.45
=45岁 帐户=基数*0.2
那么上面那条语名应该怎么改????

mittee 2003-12-22
  • 打赏
  • 举报
回复
pbsql(风云) 的不错,也可以写两条update
cgcfjxyjxy 2003-12-22
  • 打赏
  • 举报
回复
update 表 set 帐户=(case (datediff(year,出生年月,getdate())>45) when true 基数*0.3 else 基数*0.45 end)

能解释一下上面那条语名的意思吗???

如果条件是这样:>45岁 帐户=基数*0.3
<45岁 帐户=基数*0.45
=45岁 帐户=基数*0.2
那么上面那条语名应该怎么改????
klbt 2003-12-22
  • 打赏
  • 举报
回复
PB有daysafter函数,可以计算两个日期间隔天数。
如果要精确的日子比较,需要自己编写一个年龄函数
CodeMagic 2003-12-22
  • 打赏
  • 举报
回复
如果用PowerScript的话,实现两个日期型字段直接相减就可以得到一个整形值,不需要额外的函数。
xingxing 2003-12-22
  • 打赏
  • 举报
回复
直接可以用时间相减。
pbsql 2003-12-22
  • 打赏
  • 举报
回复
update 表 set 帐户=(case (datediff(year,出生年月,getdate())>45) when true 基数*0.3 else 基数*0.45 end)
wwwafa9 2003-12-22
  • 打赏
  • 举报
回复
用year函数:
Int li_HowOld
li_HowOld = year(Today()) - year(出生年月)
If li_HowOld >= 45 Then
...
Else
...
End If

611

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧