以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]怎样为查询表增加有条件的统计列?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=33775)

--  作者:jacksn
--  发布时间:2013/5/24 9:53:00
--  [求助]怎样为查询表增加有条件的统计列?
我用querybuilder建立了一个查询表(分组统计的),我希望增加一些列而这些列是有条件的统计的,例如统计属于某个业务经理的合同金额(sum(合同金额)where 业务经理 = 张三),请问怎样为查询表增加有条件的统计列?
能否像grouptablebuilder那样用totals.adddef呢?
[此贴子已经被作者于2013-5-24 9:55:31编辑过]

--  作者:Bin
--  发布时间:2013/5/24 9:55:00
--  
有条件的话只能用代码实现,不能用表达式列了.


--  作者:jacksn
--  发布时间:2013/5/24 9:58:00
--  
即使用代码,我也必须创建一列来装这些代码计算出来的数据啊,怎样创建一个新列呢?
--  作者:Bin
--  发布时间:2013/5/24 10:05:00
--  
http://www.foxtable.com/help/topics/2122.htm
--  作者:jacksn
--  发布时间:2013/5/24 10:32:00
--  
ADOXBuilder增加列后项目要重启,动态产生的查询表关闭后就没有了,然后没完没了重启。不现实。
--  作者:Bin
--  发布时间:2013/5/24 10:36:00
--  
这个是没办法的事,要么你每次打开都动态生成一次.
--  作者:狐狸爸爸
--  发布时间:2013/5/24 15:27:00
--  

QueryBuilder生成的表,也可以动态增加列的哦,例如:

 

Dim q As new QueryBuilder
q.TableName = "销售"
q.SelectString = "Select * from {订单}"
q.Build()
DataTables("销售").DataCols.Add("金额", Gettype(Double), "[数量] * [单价] * (1 - [折扣])")
MainTable = Tables("销售")


--  作者:jacksn
--  发布时间:2013/5/27 10:23:00
--  
谢谢狐狸爸爸
--  作者:lsy
--  发布时间:2013/5/27 10:46:00
--  
Dim q As new QueryBuilder
q.TableName = "销售"
q.SelectString = "Select *,数量 * 单价 * (1 - 折扣) as 金额 from {订单}"
q.Build()
MainTable = Tables("销售")
[此贴子已经被作者于2013-5-27 10:58:10编辑过]