Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

能否对查询中的某些项目进行合并?

Lee  发表于:2010-06-17 10:23:06  
复制

在查询中有些项目我想合并,不知条件要如何设置。例如:

    PO       产品编号      出库数量

10036315      HPE-001        100

10036315      HPE-001S        50

135827        ABS-001        600

135827        ABS-001S       400

我想合并得出如下结果:

   PO           产品编号     出库数量

10036315         HPE-001       150

135827           ABS-001       1000

不知道行不行。

点击下载此附件

 

Top
王樵民 发表于:2010-06-17 11:30:47

创建两个查询即可

第一个查询:取出产品编号的前7位,组成一个查询字段

SELECT 出库.PO, 出库.产品编号, 出库.出仓数量, Mid([产品编号],1,7) AS 产品编号合并
FROM 出库
ORDER BY 出库.PO, 出库.产品编号;

第二个查询:利用第一个查询的结果进行汇总查询。

SELECT DISTINCTROW 出库查询1.PO, 出库查询1.产品编号合并, Sum(出库查询1.出仓数量) AS 出仓数量, Count(*) AS 出库次数
FROM 出库查询1
GROUP BY 出库查询1.PO, 出库查询1.产品编号合并;

参见附件(出库查询1、出库查询2):

点击下载此附件

Lee 发表于:2010-06-17 13:59:55
明白了,谢谢王先生。能顺便说说Mid的用法吗?我想多学一点。

Lee 发表于:2010-06-17 23:56:08
王先生,按你方法还不能完全解决问题,例如产品编号如果是“PA-002S”,因刚好是7个字节就不能变成PA-002了。

黎红军 发表于:2010-06-19 07:36:02

这说明你的实例数据不能充分代表你的需求。

你现在能清楚说明产品编号缩减的规则吗? 如果有,可以编写规则缩减。否则是无法自动统一缩减的。

如果可能的话,是不是把“-”后面的字符位定义为三位,或者也不定长,但是取数字部分,而舍弃字母部分?

这样的方案还可以勉强编写统一规则。

 



黎红军 发表于:2010-06-19 07:38:30
用mid函数、find函数等联用可以解决你匹配的问题。如果没有规则,就无法了。 这几个函数为acc自带标准函数。按F1键,出帮助页面后,输入函数,查询便可。

Lee 发表于:2010-06-19 08:50:25

对,是我说明得不够清楚。我想把产品编号末尾有“S”的支掉S字母,例如:

ABS-001S变成ABS-001;

PA-002S变成PA-002;

末尾没S的编号不变。



Lee 发表于:2010-06-22 23:02:51
不知能否设置条件把“产品编号”末尾的S去掉,再进行汇总?

蒋元根 发表于:2010-06-23 11:37:24
建议新生成一产品编号表,增加一产品组号字段,将产品编号记录复制后粘贴到产品组号字段记录中间,再通过编辑菜单中间的查找替换方法,查找产品组号中间"s",替换为空白,再新建一查询"产品组号汇总",供参考点击下载此附件

Lee 发表于:2010-06-23 14:45:19
对,先生成个中间编号,这方法一定成,马上试。

Lee 发表于:2010-06-23 22:08:36
果然OK,多谢蒋先生一言点醒。

总记录:10篇  页次:1/1 9 1 :