Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共7 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

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

1楼
lur320 发表于: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
2楼
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)


为啥提示 “,”附近有语法错误。?
3楼
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)


这个也不对。

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

6楼
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))
7楼
有点蓝 发表于:2024/6/18 15:19:00
Dim t As String =  "un状态 is not null and un状态<>'完工' and ([盒数]<>0 or [结余]<>0)"

共7 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02930 s, 2 queries.