| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3269 人关注过本帖
标题:将一个表中所有数值类型求和,形成一条记录放到新表中
取消只看楼主 加入收藏
baichuan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:37
帖 子:953
专家分:589
注 册:2006-3-13
结帖率:93.55%
收藏
已结贴  问题点数:20 回复次数:5 
将一个表中所有数值类型求和,形成一条记录放到新表中
表中的结构数不能确定,就是不能一个个sum,怎么做?
搜索更多相关主题的帖子: 记录 
2016-08-01 18:26
baichuan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:37
帖 子:953
专家分:589
注 册:2006-3-13
收藏
得分:0 
表结构会随时因业务需求而变化,我做的是变动的,除了取表结构循环求和,没有其他简便方法么?

2016-08-02 08:16
baichuan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:37
帖 子:953
专家分:589
注 册:2006-3-13
收藏
得分:0 
以下是引用lxlsf在2016-8-1 21:29:54的发言:

版主说得不错,但是按照版主的方法稍显复杂,其实如果按楼主所说只生成一条汇总记录的话,即使不知道表结构也可以按以下方式
alter table 表 add  px_1 (c,1)  &&如果怕新增字段重复,可以加一句检测语句
repl all px_1 with "1"
inde on px_1 to aa
tota on px_1 to 新表
ALTER TABLE 表 DROP COLUMN px_1


你这是算出来有多少条记录吧?感觉是count的功能了?

2016-08-02 08:18
baichuan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:37
帖 子:953
专家分:589
注 册:2006-3-13
收藏
得分:0 
以下是引用厨师王德榜在2016-8-1 21:16:44的发言:

楼上的方法,适合已经知道表结构的情况,如果你事先不知道表结构,或者表结构随时变化,那么你Total on ??? 什么呢,你知道这时候这里该填啥?
所以,大家看看下面的方法:下面的方法,即使不知道表结构,也能实现求和。
*大致说一下思路,代码需要你自己具体化,不然只伸手,对你没好处。
*先取得表结构:
select top 1 * from 主表 into cursor  tempTab readwrite
*在所有列之间循环。
select 主表
for i =1 to fcount()
    * 当检测到某列是以下类型的时候:
    if vartype(...) = 数值型、整形、双精度、单精度、货币
       * 求和该列
        sum ... to 临时变量
        update tempTab set ...=临时变量
    endif
endfor
* 最后,把临时表追加到主表最后,完毕。

嗯,你的想法和我现在做的一样,我有个表结构表,循环计算,这样太不精简了,想找大侠看看有没有简单的!

2016-08-02 08:19
baichuan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:37
帖 子:953
专家分:589
注 册:2006-3-13
收藏
得分:0 
以下是引用吹水佬在2016-8-2 08:32:29的发言:


这“简单”是什么意思?


就是不循环操作表,几条命令解决!呵呵!

2016-08-02 10:13
baichuan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:37
帖 子:953
专家分:589
注 册:2006-3-13
收藏
得分:0 
以下是引用lxlsf在2016-8-2 11:09:51的发言:

怎么会是算出多少条记录?这样只要是数值字段都会自动求和呀



明白了,可行,在新表中出现新的数据,再导回即可啦!

2016-08-02 13:21
快速回复:将一个表中所有数值类型求和,形成一条记录放到新表中
数据加载中...
 
   



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

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