Πώς να ορίσετε μια τιμή εξόδου ενός δήλωση SELECT στην mysql;

ψήφοι
0

Έτσι, είμαι δημιουργώντας ένα ΠΕΡΙΠΤΩΣΗ mysql που υπολογίζει τις πωλήσεις κάθε μήνα από transaction_tbl. Δεν μπορώ να βρω το λάθος που έκανα.

Εδώ είναι το ερώτημα μου:

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 για τη σωστή σύνταξη, για να χρησιμοποιήσετε κοντά «mmsales SET = SELECT SUM (TOTAL_AMOUNT) ΑΠΟ transaction_tbl» στη γραμμή 8

Δημοσιεύθηκε 20/10/2018 στις 12:33
πηγή χρήστη
Σε άλλες γλώσσες...                            


1 απαντήσεις

ψήφοι
1

Χρειάζεται παρένθεση:

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

Πλέον θα πρέπει να τελειώσει κάθε δήλωση με ερωτηματικό.

Απαντήθηκε 20/10/2018 στις 12:37
πηγή χρήστη

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