以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]SQLGroupTableBuilder的过滤条件怎么写?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=158694)

--  作者:kensou11111
--  发布时间:2020/11/29 15:37:00
--  [求助]SQLGroupTableBuilder的过滤条件怎么写?
Dim b As New SQLGroupTableBuilder("统计表1","采购订单表")
b.C
Dim Cols1() As String = {"单据系统编号","_Identify"}
Dim Cols2() As String = {"检验报告系统编号","检验报告ID"}
b.AddTable("采购订单表",Cols1,"采购收货表",Cols2,JoinModeEnum.Left)
b.Groups.AddDef("{采购订单表}.采购单号")
b.Groups.AddDef("{采购订单表}.货品编号") 
b.Groups.AddDef("{采购订单表}.采购数量") 
b.Totals.AddDef("{采购收货表}.收货数量") 

b.Filter = "{采购订单表}.采购数量 > isnull({采购收货表}.收货数量,0) "

b.Build

有采购订单表和收货表2张表,我想通过以上代码统计出采购订单未收完货的数据,但filter这么写的结果不对,那么应该怎么写才对呢?

--  作者:有点蓝
--  发布时间:2020/11/29 21:12:00
--  
b.Filter = "{采购订单表}.采购数量 > {采购收货表}.收货数量 "
--  作者:kensou11111
--  发布时间:2020/11/29 21:54:00
--  
以下是引用有点蓝在2020/11/29 21:12:00的发言:
b.Filter = "{采购订单表}.采购数量 > {采购收货表}.收货数量 

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


现在filter按这样写,会得出如上图的结果。但其实我想要的效果是能过滤掉现在结果中的第一行(因为收货数量已经等于采购数量了),只保留第2行

[此贴子已经被作者于2020/11/29 21:56:36编辑过]

--  作者:有点蓝
--  发布时间:2020/11/29 22:09:00
--  
收货数量是一个汇总值,是无法做条件的。

统计后再做筛选:

b.Build
tables("统计表1").Filter = "采购数量 > 收货数量"