数据库查询报错

SELECT ddkh, sum(hz - sjsk) AS syhk

  FROM (SELECT (SELECT name

                  FROM bd_customer@ncc0614

                 WHERE pk_customer = a.ccustomerid) AS ddkh, --订单客户

               substr(b.dbizdate, 0, 7) AS ckrq, --入库日期

               sum(b.norigtaxmny) AS hz, --货值

               CASE

               

                 WHEN sum(c.money_cr) IS NULL THEN

                  0

                 ELSE

                  sum(c.money_cr)

               END AS sjsk --实际收款

          FROM ic_saleout_h@ncc0614 a

          LEFT JOIN ic_saleout_b@ncc0614 b

            ON a.cgeneralhid = b.cgeneralhid

          LEFT JOIN so_custaccountdetail@ncc0614 c

            ON b.cgeneralbid = c.cgeneralbid

         WHERE a.dr = 0

           AND b.dr = 0

           AND c.dr = 0

         GROUP BY a.ccustomerid, substr(b.dbizdate, 0, 7)

         ORDER BY substr(b.dbizdate, 0, 7))

 WHERE 1=1

   ${if(len(p1) == 0,"","and ddkh = '" +p1+ "'")} 

   ${if(len(p4) == 0,"","and ckrq < " + substr(p4,0,7) + "")} 

 GROUP BY ddkh

参数如下所示:

image.png

报错如下所示:

image.png

FineReport yzm310104 发布于 2023-10-17 16:49
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
yzm310104Lv2见习互助
发布于2024-4-23 14:23

已解决,substr(p4,0,7) 那儿多了个双引号

最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-10-17 16:51

把这个删了试试

image.png

  • yzm310104 yzm310104(提问者) 删除了也不管,错误代码:11300001 数据集配置错误java. sgl SOLException: lon supported Sql92 token at position: 843
    2023-10-17 16:59 
最佳回答
0
用户k6280494Lv6资深互助
发布于2023-10-17 16:54

子查询里不能排序

最佳回答
0
MKERALv6初级互助
发布于2023-10-17 17:16

看着像是日期的问题,可以先排除一下 ${if(len(p4) == 0,"","and ckrq < " + substr(p4,0,7) + "")} 这语句,${if(len(p4) == 0,"","and ckrq = ‘" + substr(p4,0,7) + "'")}

或者

SELECT ddkh, sum(hz - sjsk) AS syhk

  FROM (SELECT (SELECT name

                  FROM bd_customer@ncc0614

                 WHERE pk_customer = a.ccustomerid) AS ddkh, --订单客户

               substr(b.dbizdate, 0, 7) AS ckrq, --入库日期

               sum(b.norigtaxmny) AS hz, --货值

               CASE

               

                 WHEN sum(c.money_cr) IS NULL THEN

                  0

                 ELSE

                  sum(c.money_cr)

               END AS sjsk --实际收款

          FROM ic_saleout_h@ncc0614 a

          LEFT JOIN ic_saleout_b@ncc0614 b

            ON a.cgeneralhid = b.cgeneralhid

          LEFT JOIN so_custaccountdetail@ncc0614 c

            ON b.cgeneralbid = c.cgeneralbid

         WHERE a.dr = 0

           AND b.dr = 0

           AND c.dr = 0

         GROUP BY a.ccustomerid, substr(b.dbizdate, 0, 7)

         ORDER BY substr(b.dbizdate, 0, 7))

 WHERE 1=1

   and ddkh = "马鞍山市玲俊贸易有限公司"

   and ckrq < "2023-09-01"

 GROUP BY ddkh

这样应该就能定位到具体问题点,希望能帮助到你

  • 2关注人数
  • 357浏览人数
  • 最后回答于:2024-4-23 14:23
    请选择关闭问题的原因
    确定 取消
    返回顶部