-3

ここに3つのテーブルがあります:

Tapes                                 

TapesID   Title    Qty
T1      BatDog     3
T2      UnderCat   2
T3      IronMouse  1
T4      Boys Zone  1
T5      RoboCat    1

Borrow_Details

BTransID    TSpecID Qty
BT1111      TS1     1
BT1111      TS2     1
BT1111      TS3     1
BT1112      TS1     1
BT1113      TS4     1
BT1113      TS5     1
BT1114      TS1     1
BT1114      TS6     1
BT1115      TS7     1

Tape_Specific_ID

TapesID TSpecID
     T1 TS1
     T1 TS2
     T1 TS3
     T2 TS4
     T2 TS5
     T3 TS6
     T4 TS7
     T5 TS8
     T5 TS9
  1. テープのタイトルと特定のテープが借用された回数を表示するストアド プロシージャを作成する方法。プロシージャへの入力は、特定の ID のみです。プロシージャの名前は list_title_ntimes にする必要があります

私のコードですが、いいえ。1:

DELIMITER $$

CREATE PROCEDURE list_title_ntimes (IN my_id VARCHAR(5))
BEGIN

 SELECT Title FROM Tapes AND TSpecID from Tapes_SPecID WHERE ID = my_id;

END $$
DELIMITER ;

しかし、これは機能しません..

4

1 に答える 1

2

" ...テープのタイトルと、特定のテープが借りられた回数を表示します。手順への入力は、特定の ID のみです。 "

サンプル手順は次のとおりです。

DELIMITER $$
CREATE PROCEDURE list_title_ntimes (IN my_id VARCHAR(5))
BEGIN
    SELECT  a.Title, COUNT(*) totalCountBorrowed
    FROM    Tapes a
            LEFT JOIN   Tape_Specific_ID b
                ON a.TapesID = b.TapesID 
    WHERE   a.TapesID = my_id;
END $$
DELIMITER ;

を指定せずにすべて取得したい場合はID

DELIMITER $$
CREATE PROCEDURE list_title_ntimes ()
BEGIN
    SELECT  a.Title, COUNT(*) totalCountBorrowed
    FROM    Tapes a
            LEFT JOIN   Tape_Specific_ID b
                ON a.TapesID = b.TapesID 
    GROUP BY a.Title;
END $$
DELIMITER ;
于 2013-01-18T03:54:19.307 に答える