Foxtable(狐表)用户栏目专家坐堂 → 筛选条件表达式


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

主题:筛选条件表达式

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


加好友 发短信
等级:童狐 帖子:297 积分:2187 威望:0 精华:0 注册:2023/1/11 7:15:00
筛选条件表达式  发帖心情 Post By:2024/5/4 14:49:00 [只看该作者]

老师好, 我编写了一个表达式用于计算满足条件的数量:
Q_Ps = DataTables("WOReleaseSchedule").SQLCompute("Count(*)", FL1) '计划入库行

筛选条件表达式:
FL1 = "SalesOrder='" & SOLine & "' And LineNo='" & LineNo1 & "' and BomLevel Like '" & BL & ".%' and Completed='C'"
用Output.show(FL1)
SalesOrder='ISO1932017' And LineNo='17' and BomLevel Like '0.%' And Completed= 'C'

每次运行均出现如下错误:

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:
详细错误信息:
Incorrect syntax near the keyword 'LineNo'.

我仔细检查应该没有语句错误呀, 我删除目录 "bin" 后重新启动,仍然报错, 我用同样条件直接进行加载, 使用正常, 但主要写入SQLcompute 中就有问题, 能否请老师帮我看一下!


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

LineNo是什么类型的列?整数?

试试
Q_Ps = DataTables("WOReleaseSchedule").SQLCompute("Count(SalesOrder)", FL1)

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


加好友 发短信
等级:童狐 帖子:297 积分:2187 威望:0 精华:0 注册:2023/1/11 7:15:00
  发帖心情 Post By:2024/5/8 5:42:00 [只看该作者]

LineNo是字符型字段,(下图)

图片点击可在新窗口打开查看此主题相关图片如下:question2.jpg
图片点击可在新窗口打开查看

我更换了 Q_Ps = DataTables("WOReleaseSchedule").SQLCompute("Count(SalesOrder)", FL1) 语句执行, 仍然报错

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:
详细错误信息:
Incorrect syntax near the keyword 'LineNo'.

语句执行用Output.show(FL1),类似结果:

ISO19530|27     BL:0     FL:SalesOrder='ISO19530' And LineNo='27' and BomLevel Like '0%' And Completed= 'C'

百思不得其解!




 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

WOReleaseSchedule是一个查询表?

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


加好友 发短信
等级:童狐 帖子:297 积分:2187 威望:0 精华:0 注册:2023/1/11 7:15:00
  发帖心情 Post By:2024/5/8 11:55:00 [只看该作者]

WOReleaseSchedule 是实际存在的数据表,不是查询表

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110560 积分:562690 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/5/8 11:58:00 [只看该作者]

如果是SqlServer,跟踪一下后台数据库,看看执行了什么sql

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


加好友 发短信
等级:童狐 帖子:297 积分:2187 威望:0 精华:0 注册:2023/1/11 7:15:00
  发帖心情 Post By:2024/5/9 5:19:00 [只看该作者]

我在程序中仔细排查没有发现问题, 在表结构中也没有发现异常, 然后试着在SQL Server Management Studio 检查其字段信息时发现 LineNo 前后有方括号存在, 我不知道是如何产生的, 试图删除方括号却发现无效,删除后又自动添加了:

图片点击可在新窗口打开查看

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


加好友 发短信
等级:童狐 帖子:297 积分:2187 威望:0 精华:0 注册:2023/1/11 7:15:00
  发帖心情 Post By:2024/5/9 6:29:00 [只看该作者]

终于发现这个字段名是系统保留的名称, 我修改了这个名称即可, 但没有想到接下来所有与此有关的程序都需要一样修改((# ̄~ ̄#)

只是我好奇,系统为什么不能有所提示? 

问题算基本解决了

 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

不要改列名的,在查询条件里也加上中括号即可

FL1 = "SalesOrder='" & SOLine & "' And [LineNo] ='" & LineNo1 & "' and BomLevel

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


加好友 发短信
等级:童狐 帖子:297 积分:2187 威望:0 精华:0 注册:2023/1/11 7:15:00
  发帖心情 Post By:2024/5/11 17:40:00 [只看该作者]

好的, 后续我就可以这样做了,谢谢!

 回到顶部