标题:数据库查询 select 如何解决重复的问题?
取消只看楼主
pipiqi1975
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2014-10-9
结帖率:33.33%
已结贴  问题点数:20 回复次数:5 
数据库查询 select 如何解决重复的问题?
我在做一个进销存的数据库,建了两个数据表,分别为入库和出库,入库包括 时间,商品名称,供货商,单价,数量;出库包括 时间,商品名称,单价,数量。
入库表(表1)如下:

出库表(表2)如下:

两张表按照入库和出库的 商品名称、供货商名称、单价 相等进行查询(select * from 入库,出库 where 入库.入库商品名称 = 出库.出库商品名称 and 入库.供货商名称=出库.供货商名称 and 入库.单价=出库.单价 )得出下表(表3)的结果:

很明显得出的结果中硒鼓的入库信息不正确,因为在入库表(表1)中供货商aaa的商品名称硒鼓仅入库2个,而在表3中却显示两条记录。
我用的是ADO+Mshflexgrid控件
1、如何查询才能正确的显示商品正确的库存数量??
2、或者我如何调整表的结构字段来解决这个问题??
3、如果不用Mshflexgrid控件,听说可以用picturebox或label控件实现,我该如何实现,说个简单的方法或是过程就行。
最终我要得到下面这样的结果
入库商品名称 入库数量 入库.单价 入库.供货商名称 出库数量 库存数量
    硒鼓        2        120          aaa         2         0
......
    电脑        20      3500       长城公司       10        10
select 入库商品名称,供货商名称,单价,sum(入库数量) as  入库数量 from 入库 group by 入库商品名称,供货商名称,单价
如下两图


哈哈,目前已经可以做出入库和出库的统计工作了,就差两个统计结果连接问题了,会的大虾可以抓紧时间回复哦。。。
ps:需要的是在vb下操作的方法哦。。。。。

[ 本帖最后由 pipiqi1975 于 2014-11-5 21:06 编辑 ]
搜索更多相关主题的帖子: where 数据表 进销存 供货商 数据库查询 
2014-11-05 21:05
pipiqi1975
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2014-10-9
得分:0 
我用下面方法做过,但提示:不支持的连接表达式。
        Dim conn As New ADODB.Connection
        Dim rs As New ADODB.Recordset
        conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Administrator\Desktop\vb\数据库\进销存\进销存.mdb;" '连接数据库
        strSQL = "create view v1 as select 出库商品名称,供货商名称,单价,sum(出库数量) as 出库总数量 from 出库 group by 出库商品名称,供货商名称,单价"
        rs.Open strSQL, conn, 3, 3
        strSQL = "select 入库商品名称,入库数量,单价,入库.供货商名称,入库数量,出库数量,入库数量-isnull(出库总数量,0) as 库存数量 from 入库 left join v1 on 入库商品名称=v1.出库商品名称 and 入库.供货商名称=v1.供货商名称 and 入库.单价=v1.单价"
        rs.Open strSQL, conn, 3, 3
        Adodc1.Refresh
2014-11-05 21:08
pipiqi1975
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2014-10-9
得分:0 
回复 3 楼 xzlxzlxzl
与单价和供货商当然也有关系,因为两个供货商可能会供同一商品进行入库。
而单价当然也会有不同,不同的时间供的货的价格是有差别的。
2014-11-06 12:07
pipiqi1975
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2014-10-9
得分:0 
回复 3 楼 xzlxzlxzl
如果只做一张库存表的话,无法达到统计入库数量和价格,这样无法与供货商进行对账了,还有没更好的调整数据表的方法呢?
2014-11-06 12:09
pipiqi1975
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2014-10-9
得分:0 
回复 6 楼 xzlxzlxzl
请问我如果非要用现在这表结构完成统计(因为你说的做一个流水记录表,我目前的知识还不知道如何下手),我下面的代码错在哪了?
select 入库.入库商品名称 as 商品名称,入库.供货商名称,入库.单价,sum(入库.入库数量) as 入库总数,sum(出库.出库数量) as 出库总数,(sum(入库.入库数量)-sum(出库.出库数量)) as 库存数量 from 入库 left join 出库 on 入库.入库商品名称=出库.出库商品名称 and 入库.供货商名称=出库.供货商名称 and 入库.单价=出库.单价 group by 入库商品名称,入库.供货商名称,入库.单价,出库商品名称,出库,供货商名称,出库.单价
2014-11-06 17:23
pipiqi1975
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2014-10-9
得分:0 
回复 7 楼 pipiqi1975
这是我表的结构


[ 本帖最后由 pipiqi1975 于 2014-11-6 17:27 编辑 ]
2014-11-06 17:26



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




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

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