Access交流中心

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

请教各位高手个麻烦的问题

杨子康  发表于:2008-05-20 08:32:39  
复制

有表A   
    id    buynum
     1     0001#
     2     0002#
和表B,
    id    buynum  salesign  qty  flag
     1     0001#     A       3    T1
     2     0001#     A       4    T2
     3     0001#     A       5    T3
     4     0002#     B       6    T4

如何通过查询语句把表B中buynum为0001#,salesign为A的记录(现在为3条)的qty字段数据为(3+4+5的和

)再和表A中buynum为0001#的记录合并为一条记录?

 

Top
全利 发表于:2008-05-20 15:03:13

先建一个查询,将重复数大于等于2的筛选出来。同时参考下面的代码,

dim cz as string   '定义初值函数

dim  qtyj as  Integer'定义需要加的值

Set sj = CurrentDb.OpenRecordset("。。。")  '写入查询出的内容

Set xjb= CurrentDb.OpenRecordset("。。。")  '新建一个表,并字段相同,将数据写入的表

cz=sj("buynum")

sj.movenext

While Not sj.EOF    '开始循环

if cz=sj("buynum") then  '判断相同

   qtyj= qtyj+sj("qty")

else

 xjb.addnew

 xjb("qty")=qtyj

 xjb(" id ")=sj("id")

 .............                 '将其它的它段也写入

 xjb.update

endif

sj.movenext

Wend

endif

意思就是这样的。



钱玉炜 发表于:2008-05-21 08:41:40

点击下载此附件

做了个例子,final表即为你所需得最后结果



杨子康 发表于:2008-05-29 10:41:36
谢谢您的帮忙!

朱亦文 发表于:2008-06-02 21:56:28
查询1
A.buynum B.buynum salesign qty之总计
0001# 0001# A 12
0002# 0002# B 6

 

SELECT A.buynum, B.buynum, B.salesign, Sum(B.qty) AS qty之总计
FROM A INNER JOIN B ON A.buynum = B.buynum
GROUP BY A.buynum, B.buynum, B.salesign;



符鸿敏 发表于:2008-06-20 10:12:20
先建一个按编号分组统计的查询AAAA,然后再建一个更新查询,使表A的数据更新到查询AAAA即可

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