以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]两个表合并  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=176491)

--  作者:2900819580
--  发布时间:2022/4/15 0:30:00
--  [求助]两个表合并
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1 (1).table


老师:附件有二个表,分别为进出仓明细,期初库存,
想将两个表按wlid 和 Cwid 两个条件合并(Inner Join 不行),两者有不同的也要合并进去,并且根据两都统计数量为期初数量和进出总数
条件是期初的Fid = 1,进出仓明细.Fdel = 0

最后将合并表的wlid与物料表的Itid关联起来。


--  作者:有点蓝
--  发布时间:2022/4/15 8:39:00
--  
参考:http://www.foxtable.com/webhelp/topics/2322.htm
--  作者:2900819580
--  发布时间:2022/4/15 12:04:00
--  
老师,这个我看过了,两个表取的字段不一样,我想要的是有一样的就取其中一个,没有的就增加上去。
--  作者:有点蓝
--  发布时间:2022/4/15 13:36:00
--  
就是2楼的用法。试过了吗,怎么试的,有什么问题?
--  作者:2900819580
--  发布时间:2022/4/15 14:39:00
--  

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

老师,我是像上面这样试的,
可能我之前描述不清晰,我这样用Excel做出,是否好理解一些。

--  作者:有点蓝
--  发布时间:2022/4/15 14:56:00
--  
select Wlid,KWID,sum(期初数量) As [期初数量],sum(进出数量) As [进出数量] from (Select  Wlid,KWID,sum(数量) As [期初数量],0 As [进出数量] From {期初库存} Group By Wlid,KWID
union
Select  Wlid,KWID,0 As [期初数量],sum(数量) As [进出数量] From {进出仓明细} Group By Wlid,KWID) as a Group By Wlid,KWID order by KWID,Wlid

--  作者:2900819580
--  发布时间:2022/4/15 19:08:00
--  
内部表测试没有问题,但SQL加载就有问题了。
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.1.30.2
错误所在事件:
详细错误信息:
列名 \'KWID\' 无效。
列名 \'KWID\' 无效。

内部表测试没有问题,但SQL加载就有问题了。
Dim cmd As new SQLCommand
cmd.C


cmd.CommandText = "sele ct a.Wlid,a.KWID,sum(a.期初数量) As [期初数量],sum(a.进出数量) As [进出数量] "
cmd.CommandText &= " from (Sel ect  b.Wlid,b.KWID,sum(b.数量) As [期初数量],0 As [进出数量] From {期初库存} as b Group By b.Wlid,b.KWID "
cmd.CommandText &= " union Sel ect  c.Wlid,c.KWID,0 As [期初数量],sum(c.数量) As [进出数量] From {进出仓明细} as c Group By c.Wlid,c.KWID) As a "
cmd.CommandText &= " Group By a.Wlid,a.KWID order by a.KWID,a.Wlid "

Dim tb As Table = Tables(e.Form.Name & "_Table1")
tb.DataSource = cmd.ExecuteReader

--  作者:2900819580
--  发布时间:2022/4/15 21:45:00
--  
已经解决