0

この特定のストアド関数を作成し、単一の select ステートメントを使用して呼び出します。以下は、私の答えを含む質問です。最初の部分は正しいと思いますが、よくわかりません。提案/アドバイスはありますか?2 番目の質問 (パート 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 マニュアル ページ

ユーザー定義関数 (UDF) の呼び出しは、組み込み関数の呼び出しに似ています。エイリアスを持つテーブルの結合が含まれていたとしても(上記には表示されていません)。

より良い例は、2 つのテーブルがある場合です。membershipテーブル、およびtransaction合計が必要なテーブル。しかし、それはあなたのスキーマではありませんでした。

そんなものを見たいですか?

于 2015-12-04T21:06:08.733 に答える