Как установить выходное значение оператора SELECT в MySQL? - PullRequest
0 голосов
/ 20 октября 2018

Итак, я создаю mysql EVENT, который вычисляет продажи каждый месяц по транзакции.Я не могу найти ошибку, которую я сделал.

Вот мой запрос:

DELIMITER |

 CREATE EVENT compute_sales
 ON SCHEDULE
      EVERY 1 MONTH STARTS '2018-10-01 22:00.00'
 DO
      BEGIN

 DECLARE mmsales DECIMAL(11, 2)
 SET mmsales = SELECT SUM(total_amount)
           FROM transaction_tbl
           WHERE MONTH(transaction_date) = MONTH(CURRENT_DATE()) AND
                YEAR(transaction_date) = YEAR(CURRENT_DATE())

 INSERT INTO sales_tbl (sales_year, sales_month, total_sales, time_frame) VALUES 
          (YEAR(CURRENT_DATE), MONTHNAME(CURRENT_DATE), mmsales, CURRENT_DATE)

 END |

 DELIMITER ;

Вот ошибка, которую я получаю:

# 1064 - у вас ошибка в синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса, который можно использовать рядом с 'SET mmsales = SELECT SUM (total_amount) FROMaction_tbl' в строке 8

1 Ответ

0 голосов
/ 20 октября 2018

Вам нужны скобки:

SET mmsales = (SELECT SUM(total_amount)
               FROM transaction_tbl
               WHERE MONTH(transaction_date) = MONTH(CURRENT_DATE())
                 AND YEAR(transaction_date) = YEAR(CURRENT_DATE()));

Кроме того, каждый оператор должен заканчиваться точкой с запятой.

...