创建一个存储过程以使用一行 - 年平均值和月平均值填充 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 月(现在())
看看你的数据是否有什么不同?
我创建了一个存储过程来填充日志 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 月(现在())
看看你的数据是否有什么不同?