注册 登录
编程论坛 VFP论坛

VFP 数据透视

jiazhefish 发布于 2022-04-06 10:41, 3052 次点击
请各位大神帮助,temp_hz表如何通过sql 语句汇总成hz表的样子啊? 类似 https://bbs.bccn.net/viewthread.php?tid=430986&highlight=VFP%2B%CA%FD%BE%DD%CD%B8%CA%D3 这个帖子的问题
我用论坛里搜到的语句sele unitcode,avg(iif(bdl=[l_1101 ],hb,0)) l_1101  ,avg(iif(bdl=[l_1102 ],hb,0)) l_1102  from temp_hz   group  by unitcode 似乎不对,一是我的类别较多(9类),二是不要均值,要原值。
请论坛里的大神们不吝赐教哦!
12 回复
#2
jiazhefish2022-04-06 10:42
回复 楼主 jiazhefish
只有本站会员才能查看附件,请 登录
#3
sdta2022-04-06 12:48
这种示例论坛中很多的
#4
laowan0012022-04-06 17:01
查询出唯一的type,循环这些type,用select a.*,b.* from TA a left join (select 关于那个type的查询) b ON a.pn=b.pn into cursor 结果表
#5
sdta2022-04-06 20:12
是不是这种结果
只有本站会员才能查看附件,请 登录
#6
sdta2022-04-06 20:15
如果用数组方法处理,也比较简单
#7
laowan0012022-04-06 20:29
回复 楼主 jiazhefish
试试看下是不是你想要的结果
你这表里可不止9类
只有本站会员才能查看附件,请 登录
#8
jiazhefish2022-04-07 18:35
回复 7楼 laowan001
感谢大神鼎立相助,正是我想要的结果,我好好学习学习!
#9
jiazhefish2022-04-07 18:36
回复 5楼 sdta
感谢版主鼎立相助,谢谢,太感谢了
#10
sdta2022-04-07 19:48
程序代码:
SELECT DISTINCT bdl FROM temp_hz INTO CURSOR t1
lcStr = "unitcode"
SCAN
    lcStr = lcStr + ", CAST(SUM(IIF(ALLTRIM(bdl) =='" + ALLTRIM(t1.bdl) + "', hb, 0)) AS B(8)) " + bdl
ENDSCAN
SELECT &lcStr FROM temp_hz GROUP BY 1

运行结果如5楼
#11
sdta2022-04-07 19:50
22行35列
#12
jiazhefish2022-04-08 14:08
回复 10楼 sdta
神乎其技,向大神膜拜
#13
厨师王德榜2022-04-11 12:09
以前写过一个透视表精灵,应该可以实现.零代码,全程鼠标操作:
https://bbs.bccn.net/viewthread.php?tid=503807&highlight=%CD%B8%CA%D3
1