| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 382 人关注过本帖
标题:有关宏执行的语句问题。
取消只看楼主 加入收藏
johncohen
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-11-29
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
有关宏执行的语句问题。
比如:
local lctext
lctext="select count(*) as gs,sum(zd1) as zd1,sum(zd2) as zd2(接下来还有很多很多字段) from 表名"
&lctext
这样的语句中,如果字段不太多的话,这样执行没有问题。
但是字段太多后,命令行会提示表达式太复杂,就是一行的代码位数太长,超限了。
然后就构建
sele count(*) as gs,;
     sum(zd1) as zd1,;
     sum(zd2) as zd2,;
     很多很多字段,;
     from 表名
这样的语句在命令行里也是可以执行的,程序也是可以的,但是。如果用lctext来存储这么多行之后
lctext="select count(*) as gs,;"
lctext=lctext+chr(10)(这里用或者用CHR(13))+"sum(zd1) as zd1,;"
lctext=letext+chr(10)+"sum(zd2) as zd2,;"
&lctext
这时候运行程序就会提示“命令中含有不能识别的短语或关键字”
是不是说&lctext 在宏执行中的字符串是不能有换行呢,还是什么原因。
如果这里行不通,那么通过其他方法能否实现。

主要是实现:
要汇总的基础表,字段太多,直接一条select 语句肯定超限。又不想把一张表分多次汇总再用inner join 去拼接。
求大神赐教!
2015-11-29 17:47
johncohen
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-11-29
收藏
得分:0 
回复 3楼 sdta
多谢sdta
图片附件: 游客没有浏览图片的权限,请 登录注册

我本来是打算想对此excel表的需求进行汇总数据。编写了如下的代码。
思路,对table1很多很多字段进行汇总,有本期,同期,还有同比。excel中会有不同的表,不同的字段,会很多。
table2就是上述这张excel表。即自定义汇总需求表。
是否筛选等1就是参与汇总。
程序代码:
func table_hz
********************************************
lpara table1,table2
SELECT &table1
SELECT &table2
DELETE ALL
PACK
APPEND FROM hz2015.csv type csv
SELECT * from &table2 where tname=table1 and bz="1" into dbf (table2+"ls1")
SELECT (table2+"ls1")
LOCAL lctext,lntext
lctext="select "
SCAN
LOCAL lcp11,lcp12,lcp13,lcp14
      lcp11=ALLTRIM(tname)
      lcp12=ALLTRIM(hzzb)
      lcp13=ALLTRIM(hzcon)
      lcp14=ALLTRIM(bz)
      lctext=lctext+lcp13+",;"+chr(10)
ENDSCAN
lntext=LEN(lctext)
lctext=LEFT(lctext,lntext-3)+" from (table1) into DBF (table1+'ls1')"
&lctext      *运行到此处就出问题了。
USE in (table1+"ls1")
USE in (table2+"ls1")
ENDFUNC
2015-11-29 18:36
johncohen
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-11-29
收藏
得分:0 
其中一个问题解决了
&lctext
换成
ExecScript(lcText)
执行成功了。
还剩下一个问题,就是基础表字段太多,sele语句长度超限,只好分两张表,然后拼接了。
2015-11-29 19:06
快速回复:有关宏执行的语句问题。
数据加载中...
 
   



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

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