我打了一个包,有两个SQL语句,其中一个正确运行,另一个说是
'invalid fieldname',请教原因。(本机运行一切正常。)
是否那种类型 select 'asdf' as asdf 错误?
请大侠们指教。解析解析?
 系统:w2K
 后台:SQL server.
 前台:delphi7+rave5.0
 打包:delphi 7自带的express.
(错误的句子)
select nianfen as 年份,yuefen as 月份,
'餐饮' as 企业类型,sum(BenYueZongShuiE) as 当月国地税总额 
from  ShuiShouChaXun_VIEW  AAA where ((100*nianfen+yuefen) between 200301 and 200311) 
and 
isnull((select qiyeleixing from jichuxinxi where QiYeMingCheng=AAA.qiyemingcheng),'其它')='餐饮'
Group by nianfen,yuefen order by nianfen,yuefen(正确的句子)
select QiyeLeiXing as 企业类型, 
sum(LeiJiZhuanHua)  as 当月国地税总额
from (select isnull(BBB.qiyeleixing,'其它') as QiyeLeiXing,
sum(BenYueZongShuiE)  as LeiJiZhuanHua from  ShuiShouChaXun_VIEW  AAA 
left join jichuxinxi BBB 
on 
AAA.Qiyemingcheng=BBB.qiyemingcheng
where AAA.nianfen=2003 and AAA.yuefen=1 
group by BBB.qiyeleixing)  
CCC 
group by qiyeleixing 
(select isnull(qiyeleixing,'其它') from jichuxinxi where QiYeMingCheng=AAA.qiyemingcheng)='餐饮' ?
这样子应该可以,但是我后续的工作就有了问题了。
因为我在后面要把这所有的一切都转化成TstringField。
我转化是按字符串处理方法进行转化。确定'from '的pos,
对select后的字段加以convert。
但现在如果在总的'from '前有了包含'from '的子句,这一
招就基本失灵了。如果这样,或者,请教还有否其他方法转化?

解决方案 »

  1.   


    那上面明显不是“中文字段”的问题。有可能是
    select规则的问题,也可能是打包的问题,但偶
    不是很了解。
    希望有大侠指导一下。第二个里面也是中文字段,一样的没有问题。
    偶用RAVE控件都用中文。一样运行正确。
      

  2.   

    select nianfen as 年份,yuefen as 月份,
    '餐饮' as 企业类型,  //这里没有问题吗?带单引号的字段名?
      

  3.   

    谢谢陈绍彬同志,问题找到了
    顺便说一个最后两位同志,这是SQL语句的基础
    知识(感觉遇到了比我还菜的人了,HOHO。)。
    select后面的不一定是来自某字段的内容。
    select 1你会觉得是错误的?其实是正确的。它
    的结果是整数1,同样select 'asf'得出的是字符
    型的串'asf'.