【发布时间】:2018-01-13 03:42:45
【问题描述】:
我正在尝试将我的数据库从 oracle 迁移到 mariadb。
当我删除选择查询时,它执行得非常好,否则程序会显示错误。
SELECT MSFID, CONVEFEES INTO OUT_MSFID,OUT_CONVEFEES
FROM
(SELECT MSF.MSFID
(CASE WHEN MSF.CHARGETYPE = 'H' THEN
(CASE WHEN (LV_METRNAMT*((IFNULL(FIXPER,0))/100)) > (IFNULL(FIXAMT,0)) THEN
(LV_METRNAMT*((IFNULL(FIXPER,0))/100))
ELSE (IFNULL(FIXAMT,0) )END)
WHEN MSF.CHARGETYPE = 'L' THEN
(CASE WHEN (LV_METRNAMT*((IFNULL(FIXPER,0))/100)) > (IFNULL(FIXAMT,0)) THEN
(IFNULL(FIXAMT,0))
ELSE (LV_METRNAMT*((IFNULL(FIXPER,0))/100))
END)
ELSE
(LV_METRNAMT*((IFNULL(FIXPER,0))/100)) + (IFNULL(FIXAMT,0))
END)
-- (P_METRNAMT*((IFNULL(DMPER_OFFUS,0)*100)/100))+ (IFNULL(DMFIXAMT_OFFUS,0) * 100)
AS CONVEFEES
FROM VTMEMSF MSF
WHERE CURRENT_DATE() BETWEEN MSF.EFFFROM AND MSF.EFFTILL AND MSF.SLABUPTO>= LV_METRNAMT AND STOREID=P_STOREID
AND `MSF.STATUS` = 'A' AND MSF.MSFTYPE='C' -- AND MSF.TRANTYPE=P_TRNTYPE
ORDER BY SLABUPTO)
LIMIT 1;
【问题讨论】:
-
mysql中没有rownum可能需要limit 1。
-
如果您有崩溃日志,请将其包含在问题中。以tour 获取更多信息。
-
@P.Salmon 是的,我使用了限制 1。但它仍然没有执行
-
sysdate 也不是 mysql。
-
@P.Salmon - MySQL 确实有
SYSDATE();它通常与CURRENT_DATE()相同。
标签: mysql sql stored-procedures mariadb