以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  select语句报错  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=74221)

--  作者:bahamute
--  发布时间:2015/9/6 16:09:00
--  select语句报错
TABLEs("a").fill("S.e.l.e.c.t [_Identify],[单位],[年月],Round([上月实发]-[实发工资],2) as 实发差额 From {生成表}",true)

以下部分报错:
Round([上月实发]-[本月实发],2) as 应发差额

如果用
[上月实发]-[本月实发] as 应发差额      则没问题
[此贴子已经被作者于2015/9/6 16:11:07编辑过]

--  作者:大红袍
--  发布时间:2015/9/6 16:14:00
--  

报什么错?不应该报错。


--  作者:大红袍
--  发布时间:2015/9/6 16:16:00
--  
哦,是你括号的问题,括号要用英文状态下的(),不要用()
--  作者:bahamute
--  发布时间:2015/9/6 16:18:00
--  
语法错误 (操作符丢失) 在查询表达式 \'Round([上月实发]-[实发工资],2) as 实发差额 From [~TMPCLP生成表]\' 中。
--  作者:大红袍
--  发布时间:2015/9/6 16:19:00
--  
看3楼
--  作者:bahamute
--  发布时间:2015/9/6 16:25:00
--  
是括号的问题,非常规感谢。

还有一问:
类似这种查询语句:
S.e.l.e.c.t [_Identify],[单位],[年月],Round([上月实发]-[实发工资],2) as 实发差额 From {生成表} 

如何按照as 生成的列(如“实发差额”)排序?
如下语句会报错!
S.e.l.e.c.t [_Identify],[单位],[年月],Round([上月实发]-[实发工资],2) as 实发差额 From {生成表}  order by  实发差额 DESC

--  作者:大红袍
--  发布时间:2015/9/6 16:28:00
--  

生成以后,对表排序

 

TABLEs("a").Sort = "实发差额 DESC"

 

或者

 

S.e.l.e.c.t [_Identify],Round([上月实发]-[实发工资],2) as _Sortkey, [单位],[年月],Round([上月实发]-[实发工资],2) as 实发差额 From {生成表} 


--  作者:bahamute
--  发布时间:2015/9/6 17:39:00
--  
发现新问题:

从SQL测试窗口可以实现效果,但是放到任务栏控件,单击任务后出来的却不行(没有四舍五入效果)。


 t.Fill("S.e.l.e.c.t [_Identify],[单位],[年月],[工号],[姓名],Round([上月实发]-[实发工资],2) as 实发差额 From {工资单生成表}",True)


[此贴子已经被作者于2015/9/6 17:39:16编辑过]

--  作者:大红袍
--  发布时间:2015/9/6 17:42:00
--  

设置一下列格式

 

t.DataTable.DataCols("实发差额").SetFormat("0.00")

 


--  作者:bahamute
--  发布时间:2015/9/6 17:56:00
--  
这样OK了。