以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 求教三张表关联查询 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=59858) |
-- 作者:baoxyang -- 发布时间:2014/11/12 14:09:00 -- 求教三张表关联查询 表A有客户简称、退货费;表B有客户简称、提货费;表C有客户简称、托运费 我想得到结果是包含所有客户简称的退货费、提货费、托运费及合计列(为退货费+提货费+托运费)结果 请教,这个SQL语句如何写?谢谢指点!! |
-- 作者:baoxyang -- 发布时间:2014/11/12 14:10:00 -- 我用这个方法能实现,比较复杂。 Dim f1 As fxDataSource cmd.CommandText = "select 客户简称,总费用 from {托运单据} where 开单日期 >= \'"& d1 &"\' and 开单日期 <= \'"& d2 &"\' and 销单否 = \'否\'" cmd.CommandText = "select 客户简称,退货费 from {退货明细} where 入库日期 >= \'"& d1 &"\' and 入库日期 <= \'"& d2 &"\'" cmd.CommandText = "select 客户简称,提货费 from {提货计划明细} where 提货日期 >= \'"& d1 &"\' and 提货日期 <= \'"& d2 &"\'" Dim dtb As New DataTableBuilder("统计") |
-- 作者:有点甜 -- 发布时间:2014/11/12 14:25:00 -- 1、http://www.foxtable.com/help/topics/2314.htm
2、http://www.foxtable.com/help/topics/2473.htm
|
-- 作者:baoxyang -- 发布时间:2014/11/12 14:34:00 -- 以上,估计实现不了上述的问题。因为表A,表B,表C,都有可能关联列不存在现象。无法判断哪个做为基表呀 |
-- 作者:baoxyang -- 发布时间:2014/11/12 14:37:00 -- 多表统计工具的局限性 SQLGroupTableBuilder和SQLCrossTableBuilder,包括SQLJoinTableBuilder,都可以对多个表的数据进行统计,但是对于参与统计的表有两点要求: 1、参与统计的表必须是一对多或一对一的关系,不能是多对多的关系。 如果参与统计的表无法满足上述要求,我们也就无法一次性地通过某个统计工具来得出统计结果,只能使用统计工具分别对各表进行统计,然后将多个统计结果组合起来。 接下来我们就介绍如何组合多个统计结果。
我现在三张表是多对多的关系哦。 |
-- 作者:有点甜 -- 发布时间:2014/11/12 14:37:00 -- 1、先得到下面这张总表
Select 客户简称,退货费 as "费用","退货费" As 类型 from {表A} 2、对上表进行交叉表处理
------或者
1、分别得到3个表格
2、对三个表格进行连接处理 |
-- 作者:baoxyang -- 发布时间:2014/11/12 14:45:00 -- 五、UNION 运算符 UNION运算符用于组合两个查询的结果。 SELECT 公司名称, 地址 FROM {客户} WHERE 国家 = \'中国\' UNION SELECT 公司名称, 地址 FROM {供应商} WHERE 国家 = \'中国\' 两个查询的字段名称、个数、类型必须完全一致才行。
字段名称、个数、类型必须完全一致才行,但我提取字段列是不一致的呀,这样也可以吗? |
-- 作者:有点甜 -- 发布时间:2014/11/12 14:51:00 -- Select 客户简称,退货费 as "费用","退货费" As 类型 from {表A} union Select 客户简称,提货费,"提货费" from {表B} union Select 客户简称,托运费, "托运费" from {表C} |
-- 作者:baoxyang -- 发布时间:2014/11/12 15:16:00 -- 以下是引用有点甜在2014-11-12 14:51:00的发言:
Select 客户简称,退货费 as "费用","退货费" As 类型 from {表A} union Select 客户简称,提货费,"提货费" from {表B} union Select 客户简称,托运费, "托运费" from {表C} 没有看明白。客户简称,托运费, "托运费" 这个是什么意思? |
-- 作者:有点甜 -- 发布时间:2014/11/12 15:18:00 -- 以下是引用baoxyang在2014-11-12 15:16:00的发言:
没有看明白。客户简称,托运费, "托运费" 这个是什么意思?
合并表的时候区分啊,你可以先实验生成这张表看看效果么?
生成以后,按客户简称分组,类型分组,就行啦。 |