Office中国论坛/Access中国论坛

标题: [已解决] 谢谢 昨天的查询问题还是没有解决,今天发上数据库文件,请大家帮忙看看 [打印本页]

作者: overown    时间: 2009-1-8 09:18
标题: [已解决] 谢谢 昨天的查询问题还是没有解决,今天发上数据库文件,请大家帮忙看看
在"业务员品种客户表"中,列出了 业务员编号,该业务员所对应的客户编号,与对该客户所销售的品种编号
注意,这个可能会出现不同业务员针对同一客户销售同一商品的情况,
也可能出现同一业务员针对同一客户销售不同商品的情况


在经营表中列出了一些经营数据

现在需要查询出在"业务员品种客户表"中对应的 客户编号/商品编号的销售数据

要求的查询结果

业务员编号    客户编号    商品编号    2008年之前的销售总和    2008年以来的销售总和
1                          1                1                         9                                        7
2                          1                1                         9                                        7
1                          8                2                         3                                        0
4                          1                6                         0                                        7

请看附件里面

麻烦大家了~

[ 本帖最后由 overown 于 2009-1-8 16:59 编辑 ]
作者: Henry D. Sy    时间: 2009-1-8 09:32
两个表怎么建立关系,问题好像与昨天的不一样
另:
请不要重复发帖,应该在原帖上继续跟帖。
作者: overown    时间: 2009-1-8 09:45
不好意思 下次注意
昨天那个是简化了的问题,今天我就直接发数据库了

两个表中的客户编号,和商品编号需要建立联系

比如在"业务员品种客户表"中的第一行是
业务员编号=1  客户编号=2  商品编号=1
那么就在经营表中找到 客户编号=2,并且商品编号=1 的销售记录
把其中的销售数量分2008年之前和2008年以来这2段时间来分别合计总数

再看第二行
虽然业务员变了,但是客户和商品没有变
所以得到的销售统计数据应该和第一行一样

[ 本帖最后由 overown 于 2009-1-8 09:59 编辑 ]
作者: Grant    时间: 2009-1-8 10:12
这个建表方式感觉繁琐兼重复了.
销售主表-销售明细子表-业务员表-客户表
销售主表:
销售编号,销售日期,销售员,业务员,客户名称
销售明细子表:
销售编号,商品名称,数量,单价,
销售两表建立好关系你的数据库查询就好做了.
作者: overown    时间: 2009-1-8 10:21
谢谢Grant版主的解答,但是按照这个建表方式可能和我的功能不符
销售主表:
销售编号,销售日期,销售员,业务员,客户名称
按照这样建表,那么每笔销售都会确定下该销售所对应的业务员
这样不行
因为实际情况中可能出现同一业务员对相同客户销售相同产品的情况
作者: overown    时间: 2009-1-8 10:34
再来说明一下我的目的吧
"业务员品种客户表"中中记录的是哪个业务员拥有对哪个客户销售哪种商品的权利,
并且可能有多个业务员同时拥有对同一客户销售同一产品的权利.

经营表中列出的是经营数据
因为存在"多个业务员同时拥有对同一客户销售同一产品的权利"这种情况所以不能在经营表中直接界定每笔销售所对应的业务员
这也是我建立这样2个表的原因

另外我想要的是
查询到一个业务员的产品的销售情况

如果有2个业务员同时拥有某个客户的某个产品的销售权
那么我想无论是我查询这2个业务员中的任意一个,都能得出这个产品的销售情况
作者: Grant    时间: 2009-1-8 10:46
可以的,只是你不知道如何安排他们而已
作者: Grant    时间: 2009-1-8 10:48
按照你的表给你写了一个查询
SELECT 业务员品种客户表.业务员编号, 业务员品种客户表.客户编号, 业务员品种客户表.商品编号, (select nz(sum(数量),0) from 经营表 where 经营表.日期< #2008-1-1# and 经营表.客户编号=业务员品种客户表.客户编号 and 业务员品种客户表.商品编号=经营表.商品编号) AS 销售之前08总和, (select nz(sum(数量),0) from 经营表 where 经营表.日期> #2008-1-1# and 经营表.客户编号=业务员品种客户表.客户编号 and 业务员品种客户表.商品编号=经营表.商品编号) AS 销售之后08总和
FROM 业务员品种客户表;

作者: Grant    时间: 2009-1-8 10:49
实际上你的表这么安排不合理.
作者: overown    时间: 2009-1-8 11:18
十分感谢
我研究研究 有不懂的地方再来请教
作者: overown    时间: 2009-1-8 11:27
我的数据库可能还有很多不合理的地方,一下全改能力有些不足
而且现在我的数据库水平很低,等学到一些东西以后再来重新做




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3