以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]请教字符列汇总  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=58451)

--  作者:黄训良
--  发布时间:2014/10/16 22:13:00
--  [求助]请教字符列汇总

有这样的三个表,想汇总成一张明细表,请指点:

 


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


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

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

--  作者:有点甜
--  发布时间:2014/10/16 22:15:00
--  

 填充多次

 

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

 


--  作者:有点甜
--  发布时间:2014/10/16 22:15:00
--  

 或者用统计汇总

 

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

 


--  作者:有点甜
--  发布时间:2014/10/16 22:16:00
--  

或者用sql语句

 

五、UNION 运算符

UNION运算符用于组合两个查询的结果。
例如有一个客户表,一个供应商表,我需要得到所有在中国的客户和供应商的名称和地址。
因为数据位于不同的表中,显然,我们需要用两个查询才能完成任务:

SELECT 公司名称, 地址 FROM {客户} WHERE 国家 = \'中国\' UNION SELECT 公司名称, 地址 FROM {供应商} WHERE 国家 = \'中国\'

两个查询的字段名称、个数、类型必须完全一致才行。

默认情况下,UNION会自动排除重复的行,然后你可以用ALL关键词来确保返回所有的行,例如:

SELECT 公司名称, 地址 FROM {客户} WHERE 国家 = \'中国\' UNION ALL SELECT 公司名称, 地址 FROM {供应商} WHERE 国家 = \'中国\'


--  作者:y2287958
--  发布时间:2014/10/16 22:16:00
--  
用查询表或fxbuidsource

最好上例子

--  作者:黄训良
--  发布时间:2014/10/16 22:27:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:字符列统计.foxdb


--  作者:有点甜
--  发布时间:2014/10/16 22:30:00
--  
 参考楼上,已经跟你讲了多种方式。
--  作者:黄训良
--  发布时间:2014/10/17 10:37:00
--  
未搞定,顶一下!
--  作者:黄训良
--  发布时间:2014/10/17 10:45:00
--  
Dim f As New Filler   \'先填充订单统计
f.SourceTable = DataTables("已收文部门")  \'指定数据来源
f.SourceCols = "文件名称,已收文部门" \'指定数据来源列
f.Append = False
f.Distinct = False    \'允许出现重复值
f.Filter = "存档编号 = \'" &  &  "\'"    这个条件如何写: 来源表的存档编号要在接收表的编号内
f.DataTable = DataTables(收文情况明细)
f.DataCols = "文件名称,已收文部门"
f.Fill() \'填充数据

--  作者:有点甜
--  发布时间:2014/10/17 11:09:00
--  

 无语,完全看不懂你的逻辑。

 

Dim f As New Filler   \'先填充订单统计
f.SourceTable = DataTables("未收文部门")  \'指定数据来源
f.SourceCols = "文件名称,未收文部门,存档编号" \'指定数据来源列
f.Distinct = False    \'允许出现重复值
f.DataTable = DataTables("收文情况明细")
f.DataCols = "文件名称,未收文部门,存档编号"
f.Fill() \'填充数据 

For Each dr As DataRow In DataTables("已收文部门").DataRows
    Dim fdr As DataRow = DataTables("收文情况明细").Find("文件名称 = \'" & dr("文件名称") & "\' and 存档编号 = \'" & dr("存档编号") & "\'")
    If fdr IsNot Nothing Then
        fdr("已收文部门") = dr("已收文部门")
    End If
Next