标题:二表SUM后合并,为何得出错误结果?
取消只看楼主
xxwyyf007
Rank: 2
等 级:论坛游民
帖 子:24
专家分:14
注 册:2016-4-26
结帖率:60%
 问题点数:0 回复次数:8 
二表SUM后合并,为何得出错误结果?
单表各自求和的结果是正确的,但二表求和后合并的结果是错误的。
如下图





请问:
(1)正确的语句是什么?
(2)XP系统下access2000中不支持ISNULL吗?空值处本想显示为“0”,但报错
(3)最想要的full join,但报错的,是VB6不支持的吗?
 谢谢!!!

moretable.zip (16.38 KB)



程序代码:
Dim cn As ADODB.Connection
Dim rs1, rs2, rs3 As ADODB.Recordset

Private Sub Form_Load()
    Set cn = New ADODB.Connection
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & App.Path & "\rc.mdb"
   '//////////////////////////
   Set rs1 = New ADODB.Recordset
        rs1.Open "select 编号,规格,sum(数量) as 已生产 from sc group by  编号,规格 ", cn, adOpenStatic, adLockOptimistic
        If rs1.RecordCount > 0 Then
        Set MSHFlexGrid1.DataSource = rs1
    Else
         Exit Sub
    End If
   '///////////////////////////
   Set rs2 = New ADODB.Recordset
        rs2.Open "select 编号,sum(数量) as 已包装 from bz group by  编号 ", cn, adOpenStatic, adLockOptimistic
        If rs2.RecordCount > 0 Then
        Set MSHFlexGrid2.DataSource = rs2
    Else
         Exit Sub
    End If
    '///////////////////////////
    Set rs3 = New ADODB.Recordset
        rs3.Open "select sc.编号,sc.规格,sum(sc.数量) as 已生产, sum(bz.数量) as 已包装 from sc left join bz on sc.编号=bz.编号 group by sc.编号,sc.规格 ", cn, adOpenStatic, adLockOptimistic
        If rs3.RecordCount > 0 Then
        Set MSHFlexGrid3.DataSource = rs3
    Else
         Exit Sub
    End If
  
  
    rs1.Close
    rs2.Close
    rs3.Close
    cn.Close
    Set rs1 = Nothing
    Set rs2 = Nothing
    Set rs3 = Nothing
    Set cn = Nothing

End Sub


[此贴子已经被作者于2020-8-10 20:36编辑过]

搜索更多相关主题的帖子: Set SUM 编号 ADODB If 
2020-07-28 20:37
xxwyyf007
Rank: 2
等 级:论坛游民
帖 子:24
专家分:14
注 册:2016-4-26
得分:0 
改为如下,报错:
        rs3.Open "select a.编号,a.规格,a.数量 as 已生产,b.数量 as 已包装 from  (select 编号,规格,sum(数量) from sc group by 编号,规格 ) a left join (select 编号,sum(数量) from bz group by 编号 ) b on a.编号=b.编号  ", cn, adOpenStatic, adLockOptimistic



版主,在不,能否帮个忙啊.
2020-08-11 21:45
xxwyyf007
Rank: 2
等 级:论坛游民
帖 子:24
专家分:14
注 册:2016-4-26
得分:0 
哪位坛友能否帮一下,崩溃中...

[此贴子已经被作者于2020-8-11 21:50编辑过]

2020-08-11 21:49
xxwyyf007
Rank: 2
等 级:论坛游民
帖 子:24
专家分:14
注 册:2016-4-26
得分:0 
以下是引用风吹过b在2020-8-11 22:34:20的发言:

如果能把 查询1和查询2 直接做到 MDB 中去,那么 连接部分就不需要写这么复杂,直接写二个查询名就行,数据引擎发现是查询后,会自动查询生成临时表,然后再继续下一步的操作。
这样的SQL命令就比较简洁,更容易看懂。也就说查询可以当表使用 。

谢谢版主,这个问题已解决了。
另外,这里用left join,right join,inner join 都行,但用full join就不行,不知为何?
若把RS1,RS2做到MDB中去,方便以这个为例演示一下不?或本坛有类似帖子的链接否?

[此贴子已经被作者于2020-8-12 20:28编辑过]

2020-08-12 20:05
xxwyyf007
Rank: 2
等 级:论坛游民
帖 子:24
专家分:14
注 册:2016-4-26
得分:0 
以下是引用cwa9958在2020-8-12 10:06:44的发言:

这么复杂的sql语句,看的头都晕了。
既然用vb了,可以用vb语句来处理rs1,rs2的结果。可能用vb的代码会很多,但是好理解,不会出错。

感谢版主的关注,方便以此为例演示一下不?或本坛有类似帖子的链接否?再次感谢!!!
2020-08-12 20:06
xxwyyf007
Rank: 2
等 级:论坛游民
帖 子:24
专家分:14
注 册:2016-4-26
得分:0 
花送的多少,别介意!我不懂瞎点的,就表示一下心情
2020-08-12 20:10
xxwyyf007
Rank: 2
等 级:论坛游民
帖 子:24
专家分:14
注 册:2016-4-26
得分:0 
回复 11楼 cwa9958
测试通过,非常的感谢!!!
2020-08-13 21:23
xxwyyf007
Rank: 2
等 级:论坛游民
帖 子:24
专家分:14
注 册:2016-4-26
得分:0 
回复 10楼 风吹过b
感谢提供的方法,我再学习一下!
2020-08-13 21:25
xxwyyf007
Rank: 2
等 级:论坛游民
帖 子:24
专家分:14
注 册:2016-4-26
得分:0 
可以结贴了,但提示“零分帖无需结贴”,那我也不会弄了
2020-08-13 21:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-502661-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.137584 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved