如何按村、按物品名称进行数据查询统计汇总
现有表文件huowu.dbf(部分数据)中有很多条记录,物品名称也很多。我想通过统计得到如下效果:纵向统计不重复单位,横向统计各单位进不同物品的金额,并按村进行进行汇总,总金额写入“合计”字段中,请高手赐教,万分感谢!!!最终效果如下:
原表:
[此贴子已经被作者于2022-10-17 09:40编辑过]
2022-10-17 09:28
2022-10-17 11:06
2022-10-17 11:16

2022-10-17 11:25
[此贴子已经被作者于2022-10-17 16:38编辑过]
2022-10-17 11:38
2022-10-17 11:54
程序代码: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
2022-10-17 13:16
[此贴子已经被作者于2022-10-17 16:41编辑过]
2022-10-17 14:06
2022-10-17 14:40
程序代码: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编辑过]

2022-10-17 18:34