创建一个存储过程以使用一行 - 年平均值和月平均值填充 table

Create a stored procedure to populate a table with one row-Yearly and Monthly Averages

我创建了一个存储过程来填充日志 table。我在处理 H 和 I 列的语法时遇到问题。我的语法是否有问题,因为它与月度和年度平均值有关?我的问题似乎出在这些代码行上。

输出行 存储过程

   DELIMITER //
    CREATE PROCEDURE populate()
    BEGIN
    DECLARE NoEmpvar INT;
    DECLARE NoDeptvar INT; 
    DECLARE locregion1var INT; 
    DECLARE locregion2var INT; 
    DECLARE locregion3var INT; 
    DECLARE totalsalesvar DECIMAL(10,2); 
    DECLARE avgsalesvar DECIMAL(10,2); 
    DECLARE avgsalesmovar DECIMAL(10,2); 
    DECLARE avgsalesyrvar DECIMAL(10,2);
    
    SELECT COUNT(*) INTO NoEmpvar FROM  emp; 
    SELECT COUNT(*) INTO NoDeptvar FROM dept;
    SELECT COUNT(*) INTO locregion1var FROM location WHERE regionid=1; 
    SELECT COUNT(*) INTO locregion2var FROM location WHERE regionid=2; 
    SELECT COUNT(*) INTO locregion3var FROM location WHERE regionid=3; 
    SELECT COUNT(*) INTO totalsalesvar FROM sales;
    SELECT AVG(salesamt) INTO AvgSale FROM sales;
    SELECT AVG(salesamt) INTO avgsalesmovar FROM sales WHERE month(salesdate);
    SELECT AVG(salesamt) INTO avgsalesyrvar FROM sales WHERE year(salesdate);
INSERT INTO Log(NoEmp, NoDept, LocReg1, LocReg2, LocReg3, TotSales, AvgSale, AvgSaleMo, AvgSaleYr) 
    VALUES(NoEmpvar,NoDeptvar,locregion1var,locregion2var,locregion3var,totalsalesvar,avgsalesvar,avgsale smovar,avgsalesyrvar);
    END //

也许您在本月或本年的销售额 table 中没有任何销售额? 如果您有信心,也许只是 运行

select 与销售额不同的月份(销售日期)

还有运行

Select 月(现在())

看看你的数据是否有什么不同?