好的,这是关于作业的第一个问题。我只是不知道从哪里开始。如果有人可以帮助我入门,我大概就能弄清楚。谢谢
@minEnrollment = 10 @maxEnrollment = 20
确定分配给@minEnrollment和@maxEnrollment的值之间具有注册的课程数。如果这两个值之间有课程注册,请以
形式显示一条消息有__个班级,注册人数介于__和__ ..
如果在定义的范围内没有类,则以以下形式显示一条消息 “ __和__个学生之间没有课程。” .....
这是要使用的数据库:
CREATE TABLE Faculty
(Faculty_ID INT PRIMARY KEY IDENTITY,
LastName VARCHAR (20) NOT NULL,
FirstName VARCHAR (20) NOT NULL,
Department VARCHAR (10) SPARSE NULL,
Campus VARCHAR (10) SPARSE NULL);
INSERT INTO Faculty VALUES ('Brown', 'Joe', 'Business', 'Kent');
INSERT INTO Faculty VALUES ('Smith', 'John', 'Economics', 'Kent');
INSERT INTO Faculty VALUES ('Jones', 'Sally', 'English', 'South');
INSERT INTO Faculty VALUES ('Black', 'Bill', 'Economics', 'Kent');
INSERT INTO Faculty VALUES ('Green', 'Gene', 'Business', 'South');
CREATE TABLE Course
(Course_ID INT PRIMARY KEY IDENTITY,
Ref_Number CHAR (5) CHECK (Ref_Number LIKE '[0-9][0-9][0-9][0-9][0-9]'),
Faculty_ID INT NOT NULL REFERENCES Faculty (Faculty_ID),
Term CHAR (1) CHECK (Term LIKE '[A-C]'),
Enrollment INT NULL DEFAULT 0 CHECK (Enrollment < 40))
INSERT INTO Course VALUES ('12345', 3, 'A', 24);
INSERT INTO Course VALUES ('54321', 3, 'B', 18);
INSERT INTO Course VALUES ('13524', 1, 'B', 7);
INSERT INTO Course VALUES ('24653', 1, 'C', 29);
INSERT INTO Course VALUES ('98765', 5, 'A', 35);
INSERT INTO Course VALUES ('14862', 2, 'B', 14);
INSERT INTO Course VALUES ('96032', 1, 'C', 8);
INSERT INTO Course VALUES ('81256', 5, 'A', 5);
INSERT INTO Course VALUES ('64321', 2, 'C', 23);
INSERT INTO Course VALUES ('90908', 3, 'A', 38);
答案 0 :(得分:2)
部分问题是,您的帖子中实际上有3个左右的问题。因此,与其尝试发布完整的答案,不如尝试使您开始处理每个子问题。
子问题1-如何分配变量。
您需要对“如何在SQL中声明变量”和“如何在SQL中设置变量”进行一些搜索。这个不会太难。
子问题#2-如何在查询中使用变量
同样,您将需要Google搜索操作方法,例如“如何在SQL查询中使用变量”。您会发现这也很简单。
子问题#3-如何在SQL Server中使用IF。
不要打败一匹死马,但是您需要用Google搜索。但是,我想指出一件事:我将首先对此进行测试。最终,您将需要看起来像这样的东西:
IF 1 = 1 -- note, this is NOT the correct syntax (on purpose.)
STUFF
ELSE
OTHERSTUFF
然后将其切换到:
IF 1 = 2 -- note, this is NOT the correct syntax (on purpose.)
STUFF
ELSE
OTHERSTUFF
...验证真假时是否发生“ STUFF”,否则执行“ OTHERSTUFF”。仅当您掌握了它之后,才应该尝试将其与查询集成(否则,您将不知道正在发生的事情而感到沮丧,并且将更加难以测试。)
答案 1 :(得分:2)
您的请求是如何开始的,所以我将专注于此,而不是任何特定的代码。
首先获取要求的结果,然后继续按要求设置格式。
首先,使用Course
表和您现有的变量@minEnrollment = 10
和@maxEnrollment = 20
来获得满足注册要求的列表。提示:WHERE
和BETWEEN
。 (您列出的Faculty
表根本没有考虑到这一点。)在确定列表中的结果正确之后,请使用COUNT
函数获取所需的数字您的答案,然后将该值分配给新变量。
现在,到输出。 IF
的{{1}}变量是COUNT
,>0
使用变量将字符串一起填写您应该写的句子中的值。 CONCAT
,使用变量填写其他句子。
答案 2 :(得分:0)
一次一次。让我给您一些帮助:
按如下所示设置两个变量值:@minEnrollment = 10 @maxEnrollment = 20
翻译成SQL后,它看起来像:
Declare @minEnrollment integer = 10
Declare @maxEnrollment integer =15
Declare @CourseCount integer = 0
确定在两个值之间注册的课程数量 分配给@minEnrollment和@maxEnrollment。
现在,您必须查询表以确定计数:
SET @CourseCount = (SELECT Count(Course_ID) from Courses where Enrollment > @minEnrollment
这不能完全回答您的问题(目的)。希望您可以发现错误并自己解决。其他答案也为您提供了一些有用的提示。