错在哪里?请高手-----------------------

拈花一笑万山红 2013-07-04 01:42:45
有表aa,字符型字段zh、xm、cjx,数值型字段cj,如下:
xh xm cjx cj
01119000 杨 Y601 86.00
01119000 杨 Y602 83.00
01119000 杨 Y603 77.00
01119000 杨 Y600 246.00
01119002 郭 Y102 55.00
01119002 郭 Y101 54.00
01119002 郭 Y100 109.00
01119005 赵 Y601 100.00
01119005 赵 Y602 39.00
01119005 赵 Y600 139.00
想变成表bb这样:
xh xm Y601 Y602 Y603 Y600 Y101 Y102 Y100
01119000 杨 86.00 83.00 77.00 246.00
01119002 郭 54.00 55.00 109.00
01119005 赵 100.00 39.00 139.00

下面这段代码哪里错了?Store '' To m.lcStr1,m.lcStr2
Select Distinct cjx Into Cursor T1 From aa Order By cjx
m.lcStr1="Select xh,xm,wj"
Select t1
Scan
m.lcStr1=m.lcStr1+",Iif(Alltrim(cjx)=='"+Alltrim(T1.cjx)+"',cj,0000) As cj"+Alltrim(T1.cjx)
Endscan
m.lcStr1=m.lcStr1+" Into Table bb.dbf From aa"
&lcStr1.
Select t1
Scan
m.lcStr2="Blank Fields cj"+Alltrim(T1.cjx)+" All For cj"+Alltrim(T1.cjx)+"=0"
Select bb
&lcStr2.
Endscan
Select bb
Browse
...全文
167 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
WWWWA 版也光临了啊,才看见
  • 打赏
  • 举报
回复
多谢!
WWWWA 2013-07-05
  • 打赏
  • 举报
回复
wwwwb版主:可以完成,但执行后的bb表中原本不存在的成绩(希望空着)都用0.00填充了,能不能保持空白? 数字型字段最好用0 a=a+'sum(IIF(cjx="'+cjx+'",cj,0000000.00)) as '+cjx+',' 中的'+cjx+'怎么理解?求教 sum(iif(cyx='Y601',cj,0)) as Y601
十豆三 2013-07-05
  • 打赏
  • 举报
回复
加个 Sum
Store '' To m.lcStr1,m.lcStr2 
Select Distinct cjx Into Cursor T1 From aa Order By cjx 
m.lcStr1="Select xh,xm" 
Select t1 
Scan 
    m.lcStr1=m.lcStr1+",Sum(Iif(Alltrim(cjx)=='"+Alltrim(T1.cjx)+"',cj,0000.00)) As "+Alltrim(T1.cjx) 
Endscan 
m.lcStr1=m.lcStr1+" Into Table bb.dbf From aa group by xh,xm" 
&lcStr1. 
Select t1 
Scan 
    m.lcStr2="Blank Fields "+Alltrim(T1.cjx)+" All For "+Alltrim(T1.cjx)+"=0" 
    Select bb 
    &lcStr2. 
Endscan 
Select bb 
Browse
tlliqi 2013-07-05
  • 打赏
  • 举报
回复
引用 6 楼 WWWWA 的回复:
wwwwb版主:可以完成,但执行后的bb表中原本不存在的成绩(希望空着)都用0.00填充了,能不能保持空白? 数字型字段最好用0 a=a+'sum(IIF(cjx="'+cjx+'",cj,0000000.00)) as '+cjx+',' 中的'+cjx+'怎么理解?求教 sum(iif(cyx='Y601',cj,0)) as Y601
谢谢
tlliqi 2013-07-04
  • 打赏
  • 举报
回复
a=a+'sum(IIF(cjx="'+cjx+'",cj,0000000.00)) as '+cjx+',' 中的'+cjx+'怎么理解?求教
  • 打赏
  • 举报
回复
先谢谢两位大版主! 但有个问题: wwwwb版主:可以完成,但执行后的bb表中原本不存在的成绩(希望空着)都用0.00填充了,能不能保持空白? apple_8180版主:执行后的bb表的总行数太多了,重复了(相当于都appe from 追加进去了),能否保持同一xh的行数唯一?
十豆三 2013-07-04
  • 打赏
  • 举报
回复
Store '' To m.lcStr1,m.lcStr2 
Select Distinct cjx Into Cursor T1 From aa Order By cjx 
m.lcStr1="Select xh,xm" 
Select t1 
Scan 
    m.lcStr1=m.lcStr1+",Iif(Alltrim(cjx)=='"+Alltrim(T1.cjx)+"',cj,0000.00) As "+Alltrim(T1.cjx) 
Endscan 
m.lcStr1=m.lcStr1+" Into Table bb.dbf From aa" 
&lcStr1. 
Select t1 
Scan 
    m.lcStr2="Blank Fields "+Alltrim(T1.cjx)+" All For "+Alltrim(T1.cjx)+"=0" 
    Select bb 
    &lcStr2. 
Endscan 
Select bb 
Browse
wwwwb 2013-07-04
  • 打赏
  • 举报
回复
示例 自行修改 SELECT distinct cjx FROM r:\temp\ttg INTO CURSOR ss a='' SCAN a=a+'sum(IIF(cjx="'+cjx+'",cj,0000000.00)) as '+cjx+',' ENDSCAN a='select xh,xm,'+LEFT(a,LEN(a)-1)+' from ttg group by xh,xm' &a
===============XP补丁自动安装器===================== --------------------------------------------------------------------------------- ◆2008-12-12更新: 注:该程序将在Build文件夹下生成OFFICE.CMD批处理文件, 防止打不上时,也可手动运行。 同时致歉,第一个测试版我没注意,把OFFICE补丁参数搞 了。这次重新写过了,换了另外一种方式运行,确保能 成功打上OFFICE补丁。 ---------------------------------------------------------------------------------- ◆程序简要说明: 1、可以用360把下载的补丁(包括FLASH、WINDOWSXP、WMP、OFFICE补丁) 放在本程序同级目录下Build文件夹下即可。 2、程序自动识别是那类补丁,然后用相应的静默安装参数依次安装。 3、程序依次把补丁打完后,然后自动清理安装痕迹。 ◆声明: 本程序非常简单,并非自己班门弄斧,最主要是向我这样喜欢玩弄封装的 人经常装原版系统来封装,便需对系统打全补丁。我们可以把之前收藏的补丁 存放起来,用这个程序打补丁时就省时多了。 但你还是觉得麻烦的话,去下别人论坛里补丁集;也可以就用360慢慢的打吧。 取决于个人喜好。当然写个批处理也能解决的,网上太多了。写这个程序,仅 是我自己一时的兴趣。大大们别嘲笑我哟!!! ◆遗憾: ★本程序没有设置安装进度条; ★本程序不能自动识别和跳过已安装的补丁。 不能尽善尽美,故而遗憾!望高手指点!我是菜鸟,正在学习中... ------------------------------------------------------------------------------------------------------

2,749

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧