由于语法错误,我正在为此查询获取SQL异常,并且想知道如何编写此查询?
我正在使用MySQL 5,并在Java中使用spring来使用此查询。
SELECT
MAX
(
nivpof_buystock.price*
(
SELECT
no_of_shrs
FROM nivpof_sellstock
WHERE p_id=sellpid
AND AUDIT_DATE_TIME=udate
)
)
INTO acquisition_cost
FROM nivpof_buystock,nivpof_sellstock
WHERE nivpof_buystock.P_ID=sellpid
;
IF
(
(
(
SELECT
MAX(DATE)
FROM nivpof_buystock
WHERE (sc_code=company_code AND STATUS='Y' AND user_id=userid)
)
<'2018-01-31'
)
AND
(
SELECT
DATEDIFF
(
(SELECT MAX(DATE) FROM nivpof_sellstock WHERE (sc_code=company_code AND STATUS='Y' AND user_id=userid)),
(
SELECT
MAX(DATE)
FROM nivpof_buystock
WHERE (sc_code=company_code AND STATUS='Y' AND user_id=userid)
)
)
>365
)
)
THEN
SELECT
MAX
(
SELECT
CLOSE_PRICE
FROM niv_companystockdetails
WHERE
(
sc_code=company_code
AND DATE='2018-01-31'
)
*
(
SELECT
no_of_shrs
FROM nivpof_sellstock
WHERE p_id=sellpid
AND AUDIT_DATE_TIME=udate
)
)
INTO acquisition_cost
FROM nivpof_buystock,nivpof_sellstock
WHERE nivpof_buystock.P_ID=sellpid
ENDIF;
例如buyprice = 5,buydate = 2017-01-24,selldate = 2018-02-25,收盘价2018-01-31 = 10。
所以在这里我要检查(buydate <2018-01-24 AND selldate-buydate> 365days and closepriceof 2018-01-31> buyprice)然后 buyprice = closepriceof 2018-01-31;
答案 0 :(得分:0)
通常,Java一次只运行一个SQL语句,而不是多个(批处理除外)。
如果您查看查询,则尝试运行多个句子(在其中看到了;
吗?),同时还尝试向其中添加一些插入逻辑(IF
/ {{1 }}。
我建议您分别运行每个SQL语句。那应该可以解决问题。