【问题标题】:Cannot get the call of my procedure to output the correct Revenue无法调用我的程序来输出正确的收入
【发布时间】:2021-03-01 01:17:30
【问题描述】:

我正在尝试创建一个程序,在输入时输出特定 orderNumber 的总收入。但是,当我为 10100 的特定订单号运行下面的过程时,sql 返回每个订单号的所有订单收入的总和。如何更改我的程序以在输出时返回特定订单号的特定订单收入?


use salesshort;
drop procedure if exists orderTotal;

DELIMITER //

create procedure orderTotal(in orderNumber int(11))
begin
    
    select orderNumber, sum(quantityOrdered * priceEach) as 'Orders_Revenue' 
    from orderdetails
    group by orderNumber;

end//
Delimiter ;

call orderTotal('10100')

【问题讨论】:

  • 你认为你的SELECT中的orderNumber是表列引用吗?这不是真的 - 这是一个输入变量。要引用该列,您必须使用orderdetails.orderNumber

标签: mysql sql stored-procedures parameters


【解决方案1】:
CREATE PROCEDURE orderTotal(IN orderNumber INT)
    SELECT SUM(quantityOrdered * priceEach) AS Orders_Revenue
    FROM orderdetails
    WHERE orderdetails.orderNumber = orderNumber;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-28
    • 2015-06-08
    • 1970-01-01
    相关资源
    最近更新 更多