以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- sql数据库 的表达式列和加载loadfilter (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=192370) |
-- 作者:lur320 -- 发布时间:2024/6/18 14:45:00 -- sql数据库 的表达式列和加载loadfilter 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 -- 发布时间: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 -- 发布时间: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) 这个也不对。 列名 \'发货结余\' 无效。
列名 \'待验结余\' 无效。 |
-- 作者:有点蓝 -- 发布时间:2024/6/18 15:08:00 -- 如果[un状态]<>\'待检\',那么待验结余就是null,那么null是否符合【待验结余<>0】这个条件? |
-- 作者:lur320 -- 发布时间:2024/6/18 15:12:00 -- 以下是引用有点蓝在2024/6/18 15:08:00的发言: 如果[un状态]<>\'待检\',那么待验结余就是null,那么null是否符合【待验结余<>0】这个条件? 可以改为0. 不影响结果
|
-- 作者:lur320 -- 发布时间: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))
|
-- 作者:有点蓝 -- 发布时间:2024/6/18 15:19:00 -- Dim t As String = "un状态 is not null and un状态<>\'完工\' and ([盒数]<>0 or [结余]<>0)" |