起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: tlkj

[结贴] ksql 提示没有from ???

[复制链接]

432

主题

1943

帖子

2630

积分

金牌会员

Rank: 6Rank: 6

积分
2630
QQ
 楼主| 发表于 2016-3-17 14:30:22 | 显示全部楼层
create function queryMonthReport (@qian date,@hou date)
returns table
as
return(select zyq,xlzd,zongjixiu,xlzd-zongjixiu zongtuoche,zongxianlu,xianlujixiu,zongxianlu-xianlujixiu xianlutuoche,xlzd-zongxianlu zongzhandian,zongjixiu-xianlujixiu zhandianjixiu,xlzd-zongjixiu-(zongxianlu-xianlujixiu) zhandiantuoche
        from
        (select zong.zyq zyq,count(zong.xlzd)xlzd,count(zongjixiu.zongjixiu) zongjixiu,count(zongxianlu.zongxianlu)zongxianlu,count(xianlujixiu.xianlujixiu)xianlujixiu
        from
        (select xlzd xlzd,wgsj zongwgsj ,disp_id zongdisp_id ,zyq zyq from v_report where wgsj <= @hou and wgsj >= @qian) zong
        left join
        (select qxjg zongjixiu,disp_id zongjixiudisp_id  from v_report where qxjg = '即修' and wgsj <= @hou and wgsj >= @qian) zongjixiu  --//总即修
        on zong.zongdisp_id=zongjixiu.zongjixiudisp_id
        left join
        (select qxjg zongxianlu ,disp_id zongxianludisp_id  from v_report where xlzd = '线路抢修' and wgsj <= @hou and wgsj >= @qian) zongxianlu ---//总线路
        on zong.zongdisp_id=zongxianlu.zongxianludisp_id
        left join
        ( select qxjg xianlujixiu,disp_id xianlujixiudisp_id from v_report where xlzd = '线路抢修' and qxjg = '即修' and wgsj <= @hou and wgsj >= @qian)  xianlujixiu --/线路即修
        on zong.zongdisp_id=xianlujixiu.xianlujixiudisp_id
        group by zong.zyq)A
        )
是创建的函数  可以在数据库中执行能得到结果
回复 支持 反对

使用道具 举报

432

主题

1943

帖子

2630

积分

金牌会员

Rank: 6Rank: 6

积分
2630
QQ
 楼主| 发表于 2016-3-17 14:40:35 | 显示全部楼层
这是怎么个情况啊 就是弄不好了
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36107
发表于 2016-3-17 14:40:58 | 显示全部楼层
不是要创建函数,你要报表实现的sql,在数据库中把sql语句写好了
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

432

主题

1943

帖子

2630

积分

金牌会员

Rank: 6Rank: 6

积分
2630
QQ
 楼主| 发表于 2016-3-17 14:45:14 | 显示全部楼层
在数据库总写好了 不得用action调用吗 调用的时候不是要通过这个函数吗
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36107
发表于 2016-3-17 14:50:54 | 显示全部楼层
你把在数据库中执行好的select sql语句,在action的java中直接调用啊,最多就把调用的参数改了
你把sql写好,我来该action中的
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

432

主题

1943

帖子

2630

积分

金牌会员

Rank: 6Rank: 6

积分
2630
QQ
 楼主| 发表于 2016-3-17 14:57:04 | 显示全部楼层
我的sql已经写好了 是可以在sqlserver执行出正常结果的 也是我想要的结果
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36107
发表于 2016-3-17 15:06:10 | 显示全部楼层
select zyq,xlzd,zongjixiu,xlzd-zongjixiu zongtuoche,zongxianlu,xianlujixiu,zongxianlu-xianlujixiu xianlutuoche,xlzd-zongxianlu zongzhandian,zongjixiu-xianlujixiu zhandianjixiu,xlzd-zongjixiu-(zongxianlu-xianlujixiu) zhandiantuoche
        from
        (select zong.zyq zyq,count(zong.xlzd)xlzd,count(zongjixiu.zongjixiu) zongjixiu,count(zongxianlu.zongxianlu)zongxianlu,count(xianlujixiu.xianlujixiu)xianlujixiu
        from
        (select xlzd xlzd,wgsj zongwgsj ,disp_id zongdisp_id ,zyq zyq from v_report where wgsj <= @hou and wgsj >= @qian) zong
        left join
        (select qxjg zongjixiu,disp_id zongjixiudisp_id  from v_report where qxjg = '即修' and wgsj <= @hou and wgsj >= @qian) zongjixiu  --//总即修
        on zong.zongdisp_id=zongjixiu.zongjixiudisp_id
        left join
        (select qxjg zongxianlu ,disp_id zongxianludisp_id  from v_report where xlzd = '线路抢修' and wgsj <= @hou and wgsj >= @qian) zongxianlu ---//总线路
        on zong.zongdisp_id=zongxianlu.zongxianludisp_id
        left join
        ( select qxjg xianlujixiu,disp_id xianlujixiudisp_id from v_report where xlzd = '线路抢修' and qxjg = '即修' and wgsj <= @hou and wgsj >= @qian)  xianlujixiu --/线路即修
        on zong.zongdisp_id=xianlujixiu.xianlujixiudisp_id
        group by zong.zyq)A

这个?就可以直接写sql啊,你用的什么数据库?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

432

主题

1943

帖子

2630

积分

金牌会员

Rank: 6Rank: 6

积分
2630
QQ
 楼主| 发表于 2016-3-17 15:07:32 | 显示全部楼层
    select zyq,xlzd,zongjixiu,xlzd-zongjixiu zongtuoche,zongxianlu,xianlujixiu,zongxianlu-xianlujixiu xianlutuoche,xlzd-zongxianlu zongzhandian,zongjixiu-xianlujixiu zhandianjixiu,xlzd-zongjixiu-(zongxianlu-xianlujixiu) zhandiantuoche
        from
        (select zong.zyq zyq,count(zong.xlzd)xlzd,count(zongjixiu.zongjixiu) zongjixiu,count(zongxianlu.zongxianlu)zongxianlu,count(xianlujixiu.xianlujixiu)xianlujixiu
        from
        (select xlzd xlzd,wgsj zongwgsj ,disp_id zongdisp_id ,zyq zyq from v_report where wgsj <= @hou and wgsj >= @qian) zong
        left join
        (select qxjg zongjixiu,disp_id zongjixiudisp_id  from v_report where qxjg = '即修' and wgsj <= @hou and wgsj >= @qian) zongjixiu  --//总即修
        on zong.zongdisp_id=zongjixiu.zongjixiudisp_id
        left join
        (select qxjg zongxianlu ,disp_id zongxianludisp_id  from v_report where xlzd = '线路抢修' and wgsj <= @hou and wgsj >= @qian) zongxianlu ---//总线路
        on zong.zongdisp_id=zongxianlu.zongxianludisp_id
        left join
        ( select qxjg xianlujixiu,disp_id xianlujixiudisp_id from v_report where xlzd = '线路抢修' and qxjg = '即修' and wgsj <= @hou and wgsj >= @qian)  xianlujixiu --/线路即修
        on zong.zongdisp_id=xianlujixiu.xianlujixiudisp_id
        group by zong.zyq)A     这是我的sql语句
---------------------------------------------------
        public static Table queryBaobiao(java.sql.Date qian,java.sql.Date hou){
                Map<String, Object> params = new HashMap<String, Object>();
                params.put("qian",qian);
                params.put("hou",hou);
               
//                String sql="select zyq,xlzd,zongjixiu,zongtuoche,zongxianlu,xianlujixiu,xianlutuoche,zongzhandian,zhandianjixiu,zhandiantuoche from SQL.queryMonthReport(:qian,:hou)";
               
               
                String sql= "select zyq,xlzd,zongjixiu,(xlzd-zongjixiu) zongtuoche,zongxianlu,xianlujixiu,(zongxianlu-xianlujixiu) xianlutuoche,(xlzd-zongxianlu) zongzhandian,(zongjixiu-xianlujixiu) zhandianjixiu,(xlzd-zongjixiu-(zongxianlu-xianlujixiu)) zhandiantuoche"
                                +" from "
                                +"(select zong.zyq zyq,count(zong.xlzd) xlzd,count(zongjixiu.zongjixiu) zongjixiu,count(zongxianlu.zongxianlu) zongxianlu,count(xianlujixiu.xianlujixiu) xianlujixiu "
                                +"from "
                                +"(select xlzd xlzd,wgsj zongwgsj ,disp_id zongdisp_id ,zyq zyq from v_report where wgsj <= @hou and wgsj >= @qian) zong "
                                +"left join "
                                +"(select qxjg zongjixiu,disp_id zongjixiudisp_id  from v_report where qxjg = '即修' and wgsj <= @hou and wgsj >= @qian) zongjixiu "
                                +"on zong.zongdisp_id=zongjixiu.zongjixiudisp_id "
                                +"left join "
                                +"(select qxjg zongxianlu ,disp_id zongxianludisp_id  from v_report where xlzd = '线路抢修' and wgsj <= @hou and wgsj >= @qian) zongxianlu "
                                +"on zong.zongdisp_id=zongxianlu.zongxianludisp_id "
                                +"left join "
                                +"( select qxjg xianlujixiu,disp_id xianlujixiudisp_id from v_report where xlzd = '线路抢修' and qxjg = '即修' and wgsj <= @hou and wgsj >= @qian)  xianlujixiu "
                                +"on zong.zongdisp_id=xianlujixiu.xianlujixiudisp_id "
                                +"group by zong.zyq) A";
               
                Table table = KSQL.select(sql, params, "/qx/qx/data", null);

                return table;
        }--------------------------------------这是我的action
我不知道哪里出错了 看不出来 要哭了
Caused by: com.justep.exception.BusinessException: 编码: JUSTEP150210; 提示: 执行KSQL出错, KSQL: select zyq,xlzd,zongjixiu,(xlzd-zongjixiu) zongtuoche,zongxianlu,xianlujixiu,(zongxianlu-xianlujixiu) xianlutuoche,(xlzd-zongxianlu) zongzhandian,(zongjixiu-xianlujixiu) zhandianjixiu,(xlzd-zongjixiu-(zongxianlu-xianlujixiu)) zhandiantuoche from (select zong.zyq zyq,count(zong.xlzd) xlzd,count(zongjixiu.zongjixiu) zongjixiu,count(zongxianlu.zongxianlu) zongxianlu,count(xianlujixiu.xianlujixiu) xianlujixiu from (select xlzd xlzd,wgsj zongwgsj ,disp_id zongdisp_id ,zyq zyq from v_report where wgsj <= @hou and wgsj >= @qian) zong left join (select qxjg zongjixiu,disp_id zongjixiudisp_id  from v_report where qxjg = '即修' and wgsj <= @hou and wgsj >= @qian) zongjixiu on zong.zongdisp_id=zongjixiu.zongjixiudisp_id left join (select qxjg zongxianlu ,disp_id zongxianludisp_id  from v_report where xlzd = '线路抢修' and wgsj <= @hou and wgsj >= @qian) zongxianlu on zong.zongdisp_id=zongxianlu.zongxianludisp_id left join ( select qxjg xianlujixiu,disp_id xianlujixiudisp_id from v_report where xlzd = '线路抢修' and qxjg = '即修' and wgsj <= @hou and wgsj >= @qian)  xianlujixiu on zong.zongdisp_id=xianlujixiu.xianlujixiudisp_id group by zong.zyq) A
--> sql:
--> binds: []
        at com.justep.exception.BusinessException.create(Unknown Source)
        at com.justep.system.data.impl.TableUtilsImplement.ksqlSelect(Unknown Source)
        at com.justep.system.data.impl.TableUtilsImplement.ksqlSelect(Unknown Source)
        at com.justep.system.data.impl.TableUtilsImplement.ksqlSelect(Unknown Source)
        at com.justep.system.data.KSQL.select(Unknown Source)
        at Qx.queryBaobiao(Qx.java:543)
        ... 27 more
Caused by: com.justep.exception.KSQLException: 编码: JUSTEP154115; 提示: KSQL语法错误, lzd-zongjixiu) ^^zongtuoche,zong中未找到需要的元素, 位置43期望是FROM
        at com.justep.exception.KSQLException.create(Unknown Source)
        at com.justep.system.ksql.token.TokenManager.matchToken(Unknown Source)
        at com.justep.system.ksql.token.TokenManager.match(Unknown Source)
        at com.justep.system.ksql.parser.AbstractParser.fromNode(Unknown Source)
        at com.justep.system.ksql.parser.AbstractParser.selectSentenceNode(Unknown Source)
        at com.justep.system.ksql.parser.QueryParser.start(Unknown Source)
        at com.justep.system.ksql.parser.QueryParser.start(Unknown Source)
        at com.justep.system.ksql.parser.AbstractParser.parse(Unknown Source)
        ... 32 more
[ERROR] 2016-03-17 15:01:08,608 com.justep.report.controller.DataController - 报表数据获取失败
执行KSQL出错, KSQL: select zyq,xlzd,zongjixiu,(xlzd-zongjixiu) zongtuoche,zongxianlu,xianlujixiu,(zongxianlu-xianlujixiu) xianlutuoche,(xlzd-zongxianlu) zongzhandian,(zongjixiu-xianlujixiu) zhandianjixiu,(xlzd-zongjixiu-(zongxianlu-xianlujixiu)) zhandiantuoche from (select zong.zyq zyq,count(zong.xlzd) xlzd,count(zongjixiu.zongjixiu) zongjixiu,count(zongxianlu.zongxianlu) zongxianlu,count(xianlujixiu.xianlujixiu) xianlujixiu from (select xlzd xlzd,wgsj zongwgsj ,disp_id zongdisp_id ,zyq zyq from v_report where wgsj <= @hou and wgsj >= @qian) zong left join (select qxjg zongjixiu,disp_id zongjixiudisp_id  from v_report where qxjg = '即修' and wgsj <= @hou and wgsj >= @qian) zongjixiu on zong.zongdisp_id=zongjixiu.zongjixiudisp_id left join (select qxjg zongxianlu ,disp_id zongxianludisp_id  from v_report where xlzd = '线路抢修' and wgsj <= @hou and wgsj >= @qian) zongxianlu on zong.zongdisp_id=zongxianlu.zongxianludisp_id left join ( select qxjg xianlujixiu,disp_id xianlujixiudisp_id from v_report where xlzd = '线路抢修' and qxjg = '即修' and wgsj <= @hou and wgsj >= @qian)  xianlujixiu on zong.zongdisp_id=xianlujixiu.xianlujixiudisp_id group by zong.zyq) A
--> sql:
--> binds: []
com.justep.report.exception.ReportServerException: 报表数据获取失败
        at com.justep.report.controller.DataController.execute(Unknown Source)
        at com.justep.report.controller.GenericControllerChain.execute(Unknown Source)
        at com.justep.report.controller.InitController.execute(Unknown Source)
        at com.justep.report.controller.GenericControllerChain.execute(Unknown Source)
        at com.justep.report.Servlet.a(Unknown Source)
        at com.justep.report.Servlet.doPost(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:643)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:745)
Caused by: com.justep.report.exception.ReportServerException: 执行KSQL出错, KSQL: select zyq,xlzd,zongjixiu,(xlzd-zongjixiu) zongtuoche,zongxianlu,xianlujixiu,(zongxianlu-xianlujixiu) xianlutuoche,(xlzd-zongxianlu) zongzhandian,(zongjixiu-xianlujixiu) zhandianjixiu,(xlzd-zongjixiu-(zongxianlu-xianlujixiu)) zhandiantuoche from (select zong.zyq zyq,count(zong.xlzd) xlzd,count(zongjixiu.zongjixiu) zongjixiu,count(zongxianlu.zongxianlu) zongxianlu,count(xianlujixiu.xianlujixiu) xianlujixiu from (select xlzd xlzd,wgsj zongwgsj ,disp_id zongdisp_id ,zyq zyq from v_report where wgsj <= @hou and wgsj >= @qian) zong left join (select qxjg zongjixiu,disp_id zongjixiudisp_id  from v_report where qxjg = '即修' and wgsj <= @hou and wgsj >= @qian) zongjixiu on zong.zongdisp_id=zongjixiu.zongjixiudisp_id left join (select qxjg zongxianlu ,disp_id zongxianludisp_id  from v_report where xlzd = '线路抢修' and wgsj <= @hou and wgsj >= @qian) zongxianlu on zong.zongdisp_id=zongxianlu.zongxianludisp_id left join ( select qxjg xianlujixiu,disp_id xianlujixiudisp_id from v_report where xlzd = '线路抢修' and qxjg = '即修' and wgsj <= @hou and wgsj >= @qian)  xianlujixiu on zong.zongdisp_id=xianlujixiu.xianlujixiudisp_id group by zong.zyq) A
--> sql:
--> binds: []
        at com.justep.report.controller.DataController.a(Unknown Source)
        at com.justep.report.controller.DataController.a(Unknown Source)
        ... 20 more
Caused by: java.lang.Exception
        ... 22 more------------------------------这是报错信息
麻烦你了
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36107
发表于 2016-3-17 15:08:41 | 显示全部楼层
你用的什么数据库?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

432

主题

1943

帖子

2630

积分

金牌会员

Rank: 6Rank: 6

积分
2630
QQ
 楼主| 发表于 2016-3-17 15:12:06 | 显示全部楼层
sqlserver
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-2-23 06:45 , Processed in 0.055891 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表