以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]关于统计的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=51536)

--  作者:lesliecheung912
--  发布时间:2014/5/28 13:35:00
--  [求助]关于统计的问题

[此贴子已经被作者于2014-5-28 17:32:19编辑过]

--  作者:有点甜
--  发布时间:2014/5/28 14:06:00
--  

引用看完了,跨表统计你也看一下吧。

 

http://www.foxtable.com/help/topics/1472.htm


--  作者:lesliecheung912
--  发布时间:2014/5/28 14:12:00
--  

[此贴子已经被作者于2014-5-28 17:42:37编辑过]

--  作者:有点甜
--  发布时间:2014/5/28 14:26:00
--  

 比如要统计红色地方的库存,就这样写

 

Dim filter As String = "药品名称 = \'牛黄解毒片\' and 批号 = \'1122\'"

Dim sum As String = DataTables("rkmx").Compute("sum(数量)", filter) - DataTables("xsmx").Compute("sum(销售数量)", filter & " and 销售数量 > 0")
msgbox(sum)


--  作者:lesliecheung912
--  发布时间:2014/5/28 15:13:00
--  
这样确实可以了,但是现在想要从后台数据库中读取所有的数据并将这些数据按照药品名称和批号重新组成数据并且放到一张空表上,这张表上有若干药品的基本字段,另外还有之前算出来的库存量。这样应该如何做呢?
--  作者:lesliecheung912
--  发布时间:2014/5/28 15:39:00
--  

[此贴子已经被作者于2014-5-28 17:41:56编辑过]

--  作者:有点甜
--  发布时间:2014/5/28 16:16:00
--  

 以下代码生成一个查询表

 

Dim q As new QueryBuilder
q.ConnectionName = "frd"
q.TableName = "统计"
q.SelectString = "Select 药品名称,批号,规格,单位, (Select sum(数量) from {rkmx} As a where a.药品名称 = c.药品名称 And a.批号 = c.批号) - (Select sum(销售数量) from {xsmx} As a where a.药品名称 = c.药品名称 And a.批号 = c.批号) As 库存 from (Select 药品名称,批号,规格,单位 from (Select 药品名称,批号,规格,单位,数量 from {rkmx} union all Select 药品名称,批号,规格,单位,销售数量 from {xsmx}) As b group by 药品名称,批号,规格,单位) As c"
q.Build
MainTable = Tables("统计")