回 帖 发 新 帖 刷新版面

主题:3个自由表,如何相加为一个新表?和反过程。

有三个表A、B、C,结构都一样(编号C,描述C,数量N)
要求把合并为结构一样的 D,编号不能重复,描述不变,编号重复的数量相加即可。

A 记录为:
1 黑 1
4 白 1
7 红 1

B 记录为:
1 黑 1
3 黄 1
5 紫 1

C 记录为:
2 蓝 1
4 白 1
6 红 1

如果有了D,要减掉A呢?又该如何?

回复列表 (共43个回复)

沙发

说实在,本人基本功没打好,编东西老是一堆不精炼的代码?难以见人,东拼西凑也能实现。就是代码麻烦,想请教精练的代码...望各位大虾不吝赐教!谢谢

板凳

如果我遇到此事,也是用麻烦的办法.先做一个表d
然后:
use D
appe from A
sele 0
use B
do while eof()
sele D
loca for allt(编号)==allt(B.编号)
if found()
repl 数量 with 数量+B.数量
else
appe blan
repl 数量 with B.数量,编号 with B.编号,描述 with B.描述
endif
sele B
skip 
enddo
use c
go top
do while eof()
sele D
loca for allt(编号)==allt(C.编号)
if found()
repl 数量 with 数量+C.数量
else
appe blan
repl 数量 with C.数量,编号 with C.编号,描述 with C.描述
endif
sele C
skip 
enddo



3 楼

相加求D比较简单

USE A
COPY STRUCTURE TO temp
USE temp
APPEND FROM A
APPEND FROM B
APPEND FROM C
SET ENGINEBEHAVIOR 70 
SELECT 编号,描述,count(数量) as 数量 FROM temp GROUP BY 编号 INTO TABLE D

4 楼


谁能一条查询命令搞定!!!

[img]http://p15.freep.cn/p.aspx?u=v20_p15_p_0709291640483372_0.jpg[/img]

5 楼

一条命令恐怕不行吧, 建库或拷贝都需要命令啊

6 楼

不需建库或拷贝,只需要一条查询命令生成新表。

7 楼

最近公司太忙了,都没空上来...

等大侠出招了!

8 楼

[quote]不需建库或拷贝,只需要一条查询命令生成新表。[/quote]

查询命令就是我最弱的项了,真头痛...

9 楼

本人到是能用3个语句完成,cbl518老师提出一条命令完成,因而就不敢献丑,只有静观了。

10 楼

[quote]本人到是能用3个语句完成,cbl518老师提出一条命令完成,因而就不敢献丑,只有静观了。
[/quote]
老兄:
你好!
    个人有个人的编程手法和习惯!代码多少,并不是证明什么。关键是编程运行的稳定性和效率。我之所以提出这个问题,是为了提示大家用查询的方法,解决此类历游多表数据的运算问题!尽量每个表运算一次就能达到需要结果目的。大家拿方案,大家学习,大家进步!对吗???

我来回复

您尚未登录,请登录后再回复。点此登录或注册