Wie ein Ausgangswert einer SELECT-Anweisung in mysql SET?

stimmen
0

Also, ich schaffe eine MySQL-Ereignis, das jeden Monat von transaction_tbl den Umsatz berechnet. Ich kann nicht den Fehler finde ich gemacht.

Hier ist meine Frage:

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 ;

Hier ist der Fehler Ich erhalte:

# 1064 - Sie haben einen Fehler in Ihrer SQL-Syntax; Sie in die Bedienungsanleitung zu Ihrer MySQL-Server-Version für die richtige Syntax entspricht in der Nähe zu verwenden ‚SET mmsales = SELECT SUM (TOTAL_AMOUNT) FROM transaction_tbl‘ in Zeile 8

Veröffentlicht am 20/10/2018 um 12:33
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
1

Sie müssen Klammern:

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

Und Sie sollten jede Anweisung mit Semikolon enden.

Beantwortet am 20/10/2018 um 12:37
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more