标题:如何按村、按物品名称进行数据查询统计汇总
只看楼主
王咸美
Rank: 1
等 级:新手上路
帖 子:569
专家分:0
注 册:2018-1-4
结帖率:96.99%
已结贴  问题点数:20 回复次数:15 
如何按村、按物品名称进行数据查询统计汇总
现有表文件huowu.dbf(部分数据)中有很多条记录,物品名称也很多。我想通过统计得到如下效果:纵向统计不重复单位,横向统计各单位进不同物品的金额,并按村进行进行汇总,总金额写入“合计”字段中,请高手赐教,万分感谢!!!
最终效果如下:

huowu.zip (380 Bytes)

原表:
(部分数据)


[此贴子已经被作者于2022-10-17 09:40编辑过]

搜索更多相关主题的帖子: 名称 统计 汇总 行数 查询 
2022-10-17 09:28
fyyylyl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:16
帖 子:287
专家分:676
注 册:2006-5-22
得分:0 
数据发错了吧?

2022-10-17 11:06
gs2536785678
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:45
帖 子:565
专家分:1668
注 册:2017-7-16
得分:0 
简单,你转向到EXCEL,里面有数据透视,专门处理类似问题。
2022-10-17 11:16
fyyylyl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:16
帖 子:287
专家分:676
注 册:2006-5-22
得分:2 
SET ENGINEBEHAVIOR 70
CREATE CURSOR huowu0(单位 c(10),蚕豆 N(6),大豆 N(6),冬瓜 N(6),哈密瓜 N(6),木瓜 N(6),南瓜 N(6),合计 N(6))
INSERT INTO huowu0(单位,蚕豆,大豆,冬瓜,哈密瓜,木瓜,南瓜) Value("北山村",0,0,0,0,260,0)
INSERT INTO huowu0(单位,蚕豆,大豆,冬瓜,哈密瓜,木瓜,南瓜) Value("东山村",0,0,0,0,0,240)
INSERT INTO huowu0(单位,蚕豆,大豆,冬瓜,哈密瓜,木瓜,南瓜) Value("李家村",210,0,0,210,320,0)
INSERT INTO huowu0(单位,蚕豆,大豆,冬瓜,哈密瓜,木瓜,南瓜) Value("南山村",10,160,460,0,0,0)
INSERT INTO huowu0(单位,蚕豆,大豆,冬瓜,哈密瓜,木瓜,南瓜) Value("北山村",20,0,0,0,260,0)
INSERT INTO huowu0(单位,蚕豆,大豆,冬瓜,哈密瓜,木瓜,南瓜) Value("东山村",30,0,0,0,0,240)
INSERT INTO huowu0(单位,蚕豆,大豆,冬瓜,哈密瓜,木瓜,南瓜) Value("李家村",210,0,0,210,320,0)
INSERT INTO huowu0(单位,蚕豆,大豆,冬瓜,哈密瓜,木瓜,南瓜) Value("南山村",50,160,460,0,0,0)


SELECT 单位,SPACE(10) 物品名称,合计  金额 FROM huowu0 WHERE .f. INTO CURSOR huowu1 READWRITE
SELECT huowu0
SCAN
    FOR i=2 TO FCOUNT()
        c单位=单位
        cField=FIELD(i)
        nMoney=&cField
        INSERT INTO huowu1(单位,物品名称,金额) Value(c单位,cField,nMoney)
    ENDFOR
ENDSCAN
SELECT 单位,物品名称,SUM(金额) 金额 FROM huowu1 GROUP BY 单位,物品名称 INTO CURSOR huowu
brow

2022-10-17 11:25
王咸美
Rank: 1
等 级:新手上路
帖 子:569
专家分:0
注 册:2018-1-4
得分:0 
@fyyylyl 非常感谢指点,可惜未用我提供的表文件,动态生成字段名,然后进行统计汇总。

[此贴子已经被作者于2022-10-17 16:38编辑过]

2022-10-17 11:38
fyyylyl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:16
帖 子:287
专家分:676
注 册:2006-5-22
得分:0 
可能是我理解反了,下午看吧

2022-10-17 11:54
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:40
帖 子:749
专家分:2475
注 册:2011-5-8
得分:4 
回复 楼主 王咸美
首先,在huowu.dbf所在文件夹下建立一个数据库(空的即可,如果有就不用建立了。)
程序代码:
CLOSE DATABASES  all
CLOSE TABLES all
OPEN DATABASE sj
IF FILE('sjtj.dbf')
    REMOVE TABLE  sjtj
endif
SELECT DISTINCT  物品名称 zdmc FROM huowu  INTO cursor wpqdmp READWRITE 
SELECT DISTINCT  单位 FROM huowu INTO dbf  sjtj database  sj
SELECT wpqdmp
ALTER table sjtj ADD 汇总 n(18,2)
SCAN
    _zdmc=ALLTRIM(zdmc)
     ALTER table sjtj  ADD (_zdmc) n(18,2)
ENDSCAN
SELECT 单位 dw,物品名称 wpmc,金额 je FROM huowu INTO CURSOR tjmp GROUP BY dw,wpmc,je
SCAN
    _dw    =ALLTRIM(dw)
    _zdmc=ALLTRIM(wpmc)
    _je=je
    REPLACE (_zdmc) WITH _je,汇总 WITH 汇总+_je FOR ALLTRIM(sjtj.单位)==_dw IN sjtj
ENDSCAN

如果你的数据库不是 sj ,将程序中的SJ替换为你的数据库即可。
之所以要用数据库,是因为不能保证物品名称长度不超过10个字符。数据库表对字段长度没有10字符的限制。

dBase有人接盘了。
2022-10-17 13:16
王咸美
Rank: 1
等 级:新手上路
帖 子:569
专家分:0
注 册:2018-1-4
得分:0 
@xuminxz 非常感谢!但数据统计不准确,每一种物品金额未累加(但汇总数据准确)

[此贴子已经被作者于2022-10-17 16:41编辑过]

2022-10-17 14:06
gs2536785678
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:45
帖 子:565
专家分:1668
注 册:2017-7-16
得分:2 
看一下,EXCEL数据透视表

简单又方便,何必绑定一棵VFP
抱残守缺啊。。。
2022-10-17 14:40
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:8 
程序代码:
CLOSE DATABASES 
SELECT DISTINCT 物品名称 FROM huowu INTO ARRAY amc
lcStr = "单位 C(10)"
FOR ln = 1 TO ALEN(amc, 1)
    lcStr = lcStr +", " + ALLTRIM(amc[ln, 1]) + " N(4)"
ENDFOR
lcStr = lcStr + ", 合计 N(6)"
CREATE CURSOR hz (&lcStr)
INSERT INTO hz (单位) SELECT DISTINCT 单位 FROM huowu
INSERT INTO hz (单位) VALUES ("总计")
INDEX ON 单位 TAG dw

SELECT huowu
SET RELATION TO 单位 INTO hz
SCAN
    IF FOUND("hz")
        REPLACE (huowu.物品名称) WITH EVALUATE(huowu.物品名称) + huowu.金额, 合计 WITH 合计 + huowu.金额 IN hz
        REPLACE RECORD RECCOUNT() (huowu.物品名称) WITH EVALUATE(huowu.物品名称) + huowu.金额, 合计 WITH 合计 + huowu.金额 IN hz
    ENDIF 
ENDSCAN 
SET RELATION TO 
SELECT hz
SET ORDER TO 
BROWSE 


[此贴子已经被作者于2022-10-17 19:18编辑过]


坚守VFP最后的阵地
2022-10-17 18:34



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-510349-1-1.html




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

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