Foxtable(狐表)用户栏目专家坐堂 → [求助]SQLReplaceFor中的表达式


  共有1545人关注过本帖树形打印复制链接

主题:[求助]SQLReplaceFor中的表达式

帅哥哟,离线,有人找我吗?
jyh7081
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:963 积分:8510 威望:0 精华:0 注册:2012/10/3 13:25:00
[求助]SQLReplaceFor中的表达式  发帖心情 Post By:2024/4/17 8:49:00 [只看该作者]

蓝老师好!
下面的代码,是想更新[正确率历史]列为空的值,用本行的[生成日期]、[平均正确率]、[正值正确率]、[负值正确率]的列值拼接,拼接成“2024-04-15(63.89/86.67/47.62)”样的格式~
运行代码提示“类型 生成日期 不是已定义的系统类型。”,这种情况应该怎样修改?
谢谢!

Dim cnt As Integer
cnt = DataTables("趋势汇总").SQLReplaceFor("正确率历史","Convert([生成日期],'System.String') & '(' & [平均正确率] & '/' & [正值正确率] & '/' & [负值正确率] & ')'", "正确率历史 is null", True)
Output.Show("合计更新了" & cnt & "条记录的折扣!")

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110813 积分:564003 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/4/17 9:03:00 [只看该作者]

什么数据库?

 回到顶部
帅哥哟,离线,有人找我吗?
jyh7081
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:963 积分:8510 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2024/4/17 9:13:00 [只看该作者]

SQLserver


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110813 积分:564003 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/4/17 9:57:00 [只看该作者]

DataTables("趋势汇总").SQLReplaceFor("正确率历史","Convert(nvarchar(10),[生成日期],120) + '(' + [平均正确率] + '/' + [正值正确率] + '/' + [负值正确率] + ')'", "正确率历史 is null", True)

不同数据库的函数用法不一样的:https://www.baidu.com/s?wd=SqlServer%20Convert

 回到顶部
帅哥哟,离线,有人找我吗?
jyh7081
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:963 积分:8510 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2024/4/17 10:11:00 [只看该作者]

提示:

图片点击可在新窗口打开查看此主题相关图片如下:截屏图片 (3).jpg
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110813 积分:564003 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/4/17 10:40:00 [只看该作者]

到后台数据库,里看上面哪些列是ntext,改为nvarchar(max).

另外看看那些是数值列,也要转换为字符串:https://www.baidu.com/s?wd=SqlServer%20Convert

 回到顶部
帅哥哟,离线,有人找我吗?
jyh7081
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:963 积分:8510 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2024/4/17 11:57:00 [只看该作者]

好了~  谢谢!

Dim cnt As Integer
cnt = DataTables("趋势汇总").SQLReplaceFor("正确率历史", "Convert(nvarchar(10),[生成日期],120) + '(' + CAST([平均正确率] AS nvarchar) + '/' + CAST([正值正确率] AS nvarchar) + '/' + CAST([负值正确率] AS nvarchar) + ')'", "正确率历史 is null", True)
Output.Show("合计更新了" & cnt & "条记录的折扣!")

 回到顶部