| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1413 人关注过本帖
标题:问个字符或者日期相加问题?
取消只看楼主 加入收藏
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
结帖率:98.98%
收藏
已结贴  问题点数:10 回复次数:13 
问个字符或者日期相加问题?
我要在数据表A中,把经过汇总的记录的日期变换为字符相加起来。。
如:表A
编号   日期      费用1  费用2  费用3  参加
A001   2015/3/1  100    200    50     T
A001   2015/2/1  100    100    50     T
A001   2015/1/1  300    200    50     T
A001   2014/12/1  100    100    50    T
A001   2014/11/1  100    100    50    F
A002   2015/4/1  100    200    50     F
A002   2015/3/1  100    200    50     T
A002   2015/2/1  100    100    50     T
A002   2015/1/1  300    200    50     T
A002   2014/12/1  100    100    50    T
A002   2014/11/1  100    200    50    T
A003   2015/4/1  100    200    50    F
 
等等
我要统计合计数,
SELECT SUM(费用1) AS 费用1,SUM(费用2) AS 费用2,SUM(费用3) AS 费用3 FROM 表A WHERE 参加=.T. GROUP BY 编号
上面的是没问题,但我想在上面的这个汇总表上,增加1个备注,备注放的是参加汇总的日期想加起来,
就拿上面的数据来说,
A001汇总后的备注内容是 2015/3/1,2015/2/1,2015/1/1,2014/12/1
A002汇总后的备注内容是 2015/3/1,2015/2/1,2015/1/1,2014/12/1,2014/11/1

怎么做啊?




[ 本帖最后由 mywisdom88 于 2015-4-11 22:45 编辑 ]
搜索更多相关主题的帖子: 记录 数据表 
2015-04-11 22:42
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
我是要把参加汇总的记录的日期字段累加到备注去,最多12条记录累加,
2015-04-12 12:28
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
会啊,
但SCAN少用,我以前都是用LOCATE 来找出来,
2015-04-12 16:14
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 

**用TMP_CASH表生成汇总表TMP_CASH2,然后用2次FOR,把TMP_CASH中参加汇总的日期累加起来,放到TMP_CASH2的备注去。
**我只会用FOR,你们能用SACN优化一下,给我学习学习。。

SELECT 编号,MAX(费用期间) 费用期间,SUM(费用合计) 合计,SUM(电费合计) 电费,SUM(水费合计) 水费,SUM(管理费) 管理费,SUM(滞纳金) 滞纳金,SUM(垃圾费) 垃圾费,1 AS 公用电费,交费,备注,ID16 ;
       FROM TMP_CASH WHERE 操作=1 GROUP BY 编号 INTO TABLE DATA\TMP_CASH2
SELECT TMP_CASH2
INDEX ON 编号 TAG 编号

RQ=""
SELECT TMP_CASH2
RN2=RECC()
FOR I=1 TO RN2
    SELECT TMP_CASH2
    GO I
    RQ=编号
    BH=编号
    SELECT TMP_CASH
    RN=RECC()
    FOR J=1 TO RN
       SELECT TMP_CASH
        GO J
        IF 编号=BH AND 操作=1
           RQ=RQ+[;]+DTOC(费用期间)
        ENDIF
    ENDFOR
    MESSAGEBOX(RQ)   && UPDATE TMP_CASH2 SET 备注=RQ WHERE 编号=BH
    RQ=""
ENDFOR
2015-04-12 17:24
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
不是源表,原表是TMP_CASH,我写在TMP_CASH2,多了个2的。
我看了,你们说用SCAN,,怎么用啊,我只会用FOR.
2015-04-12 17:53
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
2楼用SCAN,,
我不会用,只能用FOR,勉强把要的结果搞出来了。
SELECT 编号,MAX(费用期间) 费用期间,SUM(费用合计) 合计,SUM(电费合计) 电费,SUM(水费合计) 水费,SUM(管理费) 管理费,SUM(滞纳金) 滞纳金,SUM(垃圾费) 垃圾费,1 AS 公用电费,交费,备注,备注+SPACE(80) 交费备注,ID16 ;
       FROM TMP_CASH WHERE 操作=1 GROUP BY 编号 INTO TABLE DATA\TMP_CASH2

SELECT TMP_CASH2
INDEX ON 编号 TAG 编号

*SELECT TMP_CASH2
RN2=RECC()
SELECT TMP_CASH
RN=RECC()
RQ=""   
FOR I=1 TO RN2
    SELECT TMP_CASH2
    GO I
    RQ=""
    BH=编号
    FOR J=1 TO RN
       SELECT TMP_CASH
        GO J
        IF 编号=BH AND 操作=1
           RQ=RQ+STR(YEAR(费用期间),4)+[/]+PADL(MONTH(费用期间),2,[0])++[ ;]
        ENDIF
    ENDFOR
    UPDATE TMP_CASH2 SET 交费备注=RQ WHERE 编号=BH
    RQ=""
ENDFOR   
2015-04-12 18:19
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
FOR I=1 TO RN2
    SELECT TMP_CASH2
    GO I
    RQ=""
    BH=编号
    FOR J=1 TO RN
       SELECT TMP_CASH
        GO J
        IF 编号=BH AND 操作=1
           RQ=RQ+STR(YEAR(费用期间),4)+[/]+PADL(MONTH(费用期间),2,[0])++[ ;]
        ENDIF
    ENDFOR
    UPDATE TMP_CASH2 SET 交费备注=RQ WHERE 编号=BH
    RQ=""
ENDFOR   
是不是GO J不要的?
GO I 肯定是要的,
2015-04-12 18:27
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
用的是老掉牙的VFP6.0
2015-04-12 18:30
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册
2015-04-12 18:52
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 


*clear all
*Set Collate To "MACHINE"
SELECT 编号,MAX(费用期间) 费用期间,SUM(费用合计) 合计,SUM(电费合计) 电费,SUM(水费合计) 水费,SUM(管理费) 管理费,SUM(滞纳金) 滞纳金,SUM(垃圾费) 垃圾费,1 AS 公用电费,交费,备注,""+SPACE(120) 交费备注,ID16 ;
       FROM TMP_CASH WHERE 操作=1 GROUP BY 编号 INTO TABLE DATA\TMP_CASH2
      
select TMP_CASH2
index on 编号 to bh

select TMP_CASH
set relation to 编号 into TMP_CASH2
scan
if tmp_cash.编号=TMP_CASH2.编号 AND 操作=1
    replace TMP_CASH2.交费备注 with TMP_CASH2.交费备注-","-dtoc(tmp_cash.费用期间)
ENDIF   
endscan
set relation to
select tmp_cash2
set index to
*replace all 内容 with substr(内容,2)
* 显示结果
browse
2015-04-12 18:52
快速回复:问个字符或者日期相加问题?
数据加载中...
 
   



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

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