Data je tabela Studenti:
CREATE TABLE Studenti
(Student varchar(10) NOT NULL PRIMARY KEY
, Razred varchar(1) NOT NULL CHECK(Razred IN ('A','B'))
, PkgType int NOT NULL CHECK (PkgType In (0,1,2,3))
, StudNum int NULL CHECK (StudNum > 0)
)
GO
CREATE UNIQUE INDEX IX_RazNum ON Studenti (Razred,StudNum)
GO
Treba dodeliti StudNum tako da se studenti budu sortirani po pravilu (Razred,PkgType,StudNum)
Ovako je programer popunio u tabelu:
INSERT INTO Studenti VALUES ('Ana','A',0,1)
INSERT INTO Studenti VALUES ('Branka','A',0,2)
INSERT INTO Studenti VALUES ('Ceca','A',1,3)
INSERT INTO Studenti VALUES ('Dragana','A',1,4)
INSERT INTO Studenti VALUES ('Ema','B',0,4)
INSERT INTO Studenti VALUES ('Fatima','B',0,5)
INSERT INTO Studenti VALUES ('Goca','B',1,2)
INSERT INTO Studenti VALUES ('Hamida','B',1,3)
INSERT INTO Studenti VALUES ('Ivana','B',1,1)
Da li je programer ispostovao pravilo o sortiranju?
Ocigledno da nije, jer:
SELECT * FROM Studenti
ORDER BY razred, PkgType, StudNum
daje
Student Razred PkgType StudNum
---------- ------ ----------- -----------
Ana A 0 1
Branka A 0 2
Ceca A 1 3
Dragana A 1 4
Ema B 0 4
Fatima B 0 5
Ivana B 1 1
Goca B 1 2
Hamida B 1 3
(9 row(s) affected)
Pogledajte razred = "B". Za razred B ispravano bi bilo ovako:
Student Razred PkgType StudNum
---------- ------ ----------- --------------------
Ema B 0 1
Fatima B 0 2
Goca B 1 3
Hamida B 1 4
Ivana B 1 5
Zadatak je izlistati sve studente koji imaju meispravan StudNum.
:-)