チーム名と年を受け取り、その特定の年のその特定のチームのプレーヤー数を返すストアド プロシージャを作成したいと考えています。私はMYSQLで作業しており、以下にリストされているのは私が使用しているテーブルです:
Person (personID, name, phone, email, year)
Player (personID, dateOfBirth, school)
playerTeam (personID, teamID)
Team (teamID, teamName, ageGroup)
これまでのところ、テーブルを結合して、teamName と Person.year = 入力パラメーターの personID のみを計算しようとしましたが、役に立ちませんでした。何か案は?
この質問を送信した後、試行錯誤を繰り返した結果、次のステートメントを使用してこれを機能させることができました。
DELIMITER //
CREATE PROCEDURE teamSize (IN team VARCHAR (30), IN YEAR INT)
BEGIN
SELECT
COUNT(Person.personID) NumOfPlayers
FROM
Person AS p,
Player,
playerTeam,
Team
WHERE Person.personID = Player.personID
AND Player.personID = playerTeam.personID
AND Team.teamID = playerTeam.teamID
AND Team.teamName = team
AND Person.year = YEAR ;
END //
DELIMITER ;
CALL teamSize('Pirates', 1991);
現時点では少し面倒なので、結合などを使用してこれを単純化する方法はありますか。