というわけで、学校の宿題です。SQL クエリが数値を返す理由がわかりません。8 つのテーブルが作成されました。興味のある主なものは学生です
CREATE TABLE Student
(
Number INT NOT NULL IDENTITY(130001, 1),
Name CHAR(55) NOT NULL,
PRIMARY KEY (Number)
)
それに 36 人の名前を挿入しました (これが生徒の数です)。しかし、クエリを実行すると
SELECT COUNT(Student.Name) AS 'Total number of students'
FROM Student
144 を返します。ここで指定されたコードと関係があると言いたいです。
DECLARE @totalProgram INT
DECLARE @totalStudent INT
DECLARE @i INT
SET @totalProgram = (SELECT COUNT(*) FROM Program)
SET @totalStudent = (SELECT COUNT(*) FROM Student)
SET @i = 1
WHILE @i <= @totalStudent
BEGIN
INSERT INTO ProgramGraduate
(
ProgramID,
StudentNumber
)
VALUES
(
FLOOR(RAND() * @totalProgram + 1),
FLOOR(RAND() * @totalStudent + 130001)
)
SET @i = @i + 1
END
GO
その目的は、プログラム内の学生の総数をランダム化することだと思いますか? 最初の 6 行が変数を宣言し、変数に値を与えていることは理解していますが、その WHILE ループが始まると混乱します。コードで何が起こっているのかを分析するのを手伝ってくれたら、本当に感謝します。ありがとう!
ハンナ