Foxtable(狐表)用户栏目专家坐堂 → sql数据库 的表达式列和加载loadfilter


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

主题:sql数据库 的表达式列和加载loadfilter

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


加好友 发短信
等级:五尾狐 帖子:1031 积分:8978 威望:0 精华:0 注册:2015/8/12 16:28:00
sql数据库 的表达式列和加载loadfilter  发帖心情 Post By:2024/6/18 14:45:00 [只看该作者]

 Dim t As String =  "un状态 is not null and un状态<>'完工' and (待验结余<>0 or 发货结余<>0)"
current table.datatable.load(false)
currenttable.filter=t

其中,
待验结余为表达式列:IIF([un状态]='待检',[盒数],null)

发货结余也是表达式列:IIF([un状态]='待检',null,IsNull([结余],[盒数]))
其余为普通列。


对于这种带有if的表达式。在使用loadfilter时,怎么写?
我现在是load,然后filter。感觉数据多了加载数据很慢。想优化加载方式只load需要的数据。
或者sql command的怎么写?
se1ect * from {} where un状态 is not null and un状态<>'完工' and

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


加好友 发短信
等级:五尾狐 帖子:1031 积分:8978 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2024/6/18 15:04:00 [只看该作者]

 se1ect *,(Case When un状态='待检' Then 盒数 Else 0 End) As 待验结余,(case when un状态='待检',0,ISNULL(结余,盒数)) as 发货结余 from {成品数据} where un状态 is not null and un状态<>'完工' and (待验结余 <> 0 or 发货结余<> 0)


为啥提示 “,”附近有语法错误。?

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


加好友 发短信
等级:五尾狐 帖子:1031 积分:8978 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2024/6/18 15:06:00 [只看该作者]

se1ect *, (Case When un状态='待检' Then 盒数 Else 0 End) As 待验结余, (case when un状态='待检' then 0 else ISNULL(结余,盒数) end) as 发货结余 from {成品数据} where un状态 is not null and un状态<>'完工' and (待验结余 <> 0 or 发货结余<> 0)


这个也不对。

列名 '发货结余' 无效。
列名 '待验结余' 无效。

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


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

如果[un状态]<>'待检',那么待验结余就是null,那么null是否符合【待验结余<>0】这个条件?

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


加好友 发短信
等级:五尾狐 帖子:1031 积分:8978 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2024/6/18 15:12:00 [只看该作者]

以下是引用有点蓝在2024/6/18 15:08:00的发言:
如果[un状态]<>'待检',那么待验结余就是null,那么null是否符合【待验结余<>0】这个条件?
可以改为0. 不影响结果


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


加好友 发短信
等级:五尾狐 帖子:1031 积分:8978 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2024/6/18 15:12:00 [只看该作者]

 OK 了。。。



se1ect *, (Case When un状态='待检' Then 盒数 Else 0 End) As 待验结余, (case when un状态='待检' then 0 else ISNULL(结余,盒数) end) as 发货结余 from {成品数据} where un状态 is not null and un状态<>'完工' and ((Case When un状态='待检' Then 盒数 Else 0 End) <> 0 or (case when un状态='待检' then 0 else ISNULL(结余,盒数) end <> 0))

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


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

Dim t As String =  "un状态 is not null and un状态<>'完工' and ([盒数]<>0 or [结余]<>0)"


 回到顶部