0

我需要帮助创建这个特定的存储函数并使用单个 select 语句调用它。以下是我回答的问题。我想我的第一部分是对的,但我不确定。有什么建议/建议吗?对于第二个问题(b 部分),我错误地调用了该函数,并且无法使其显示为问题/b 部分中指定的内容。有什么建议吗?我非常感谢您的帮助。

A 部分)创建一个名为 get_customer_balance 的存储函数,它将通过传入会员编号从会员表中返回客户的余额。

我的答案:

DELIMITER $$
CREATE FUNCTION get_customer_balance (membershipNo INT) 
RETURNS dec 
DETERMINISTIC
BEGIN
DECLARE CustBal dec;
SET CustBal = 0;
SELECT balance INTO CustBal  
FROM membership
WHERE membership_id = membershipNo;
RETURN CustBal;
END$$
DELIMITER ; 

B部分问题

会员表。这是问题的原始表格(供参考指南)

4

1 回答 1

0
create table membership
(   membership_id int primary key,
    balance decimal(10,2) not null
);

insert membership(membership_id,balance) values (1,1),(102,11),(103,109.25);

select membership_id,format(get_customer_balance(membership_id),2) as theBalance 
from membership 
where membership_id=102;

+---------------+------------+
| membership_id | theBalance |
+---------------+------------+
|           102 | 11.00      |
+---------------+------------+

Mysql Manual page on Create Proc and Functions

调用您的用户定义函数 (UDF) 就像调用任何内置函数一样。即使它涉及到具有别名的表的连接(上面没有显示)。

一个更好的例子是其中有两个表。一张membership表,一张transaction需要求和的表。但这不是您的架构。

你愿意看到这样的事情吗?

于 2015-12-04T21:06:08.733 回答