Mysql 正在获取sql异常并想知道如何正确编写此查询?

Mysql 正在获取sql异常并想知道如何正确编写此查询?,mysql,Mysql,由于语法错误,我收到此查询的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

由于语法错误,我收到此查询的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,closeprice of 2018-01-31=10

所以我想在这里检查一下BuyDate365天和closepriceof 2018-01-31是否>buyprice then
买价=2018年1月31日收盘价

通常,java一次运行一条SQL语句,而不是多条SQL语句,但批处理除外

如果你看你的查询,你试图运行多个句子,你看到那些;那里同时尝试在IF/ENDIF中添加一些插入逻辑


我建议您分别运行每个SQL语句。这应该可以解决问题。

请编辑代码使其可读。同时发布完整的错误消息。