Está en la página 1de 3

NOMBRE: Martha Lizbeth Villafaa Lpez

Grupo: Ti-207

Examen: Proyecto 4

Parte 1
Parte 2
CREATE BASADATE Proyecto4;
USE Proyecto4;

CREATE TABLE Papers(paperID int not null,


title varchar(40),
BOKid2 varchar(50),
dateSubmitted date,
dateReviewsReturned date,
issueVol float,
issueNum int,
status varchar(30),
primary key(paperId),
foireign key(bOKid2) references SEBOK(bOKid));

CREATE TABLE SEBOK(bOKid int not null,


bOKtitle varchar(30),
bOKdesc float,
primary key(boKid));

CREATE TABLE Reviewers(reviewerID int not null,


name varchar(50),
email varchar(30),
phoneNum int,
role varchar(40),
primary key(reviewerID));

CREATE TABLE Reviews(reviews int not null,


paperID2 int,
revieweID2,
dateAssigned date,
dateReturned date,
primary key(reviews),
foreign key(paperID2),
foreign key(reviewerID2));

CREATE TABLE ReviewerInt(reviewerInt int not null,


reviewerID3 int,
bOKid3 int,
bOKinterest varchar(50),
primary key(reviewerInt),
foreign key(reviewerID3),
foreign key(bOKid3));
Parte 3
2.-SELECT PaperID, Title, DateSubmitted, DateReviewsReturned, Status FROM Papers ORDER BY PaperID;
El cdigo se indica que mestre las columnas PaperID, Title, DateSubmitted, DateReviewsReturned, Status de la
tabla Papers, pero ordenados por ID.

3.-SELECT PaperID, Title, BOKid, DateSubmitted, DateReviewsReturned, Status FROM Papers WHERE (Status <>
Accepted') AND (Status<>'Rejected') ORDER BY PaperID;
El cdigo se refiere a que muestre las columnas PaperID, Title, BOKid, DateSubmitted, DateReviewsReturned,
Status de la tabla Papers, pero nicamente muestre los datos donde Status tenga Accepted y Rejected
por orden de ID.

4.-SELECT ReviewerID, MAX(DateAssigned) AS LatestRequested, MAX(DateReturned) AS LatestReturned FROM


Reviews GROUP BY ReviewerID;
El metodo max, devuelve el valor mximo de una columnda dada y group by los ordena por esa otra columna, es
decir
Mostrara:
ReviewerID, el valor mximo de DateAssigned nombrado como LatestRequested y el valor mximo de
DateReturned nombrado como LatestReturned y al final, agruparaa los datos por ReviewerID (osea, los ReviewerID
que se repitan, los pondra solo una vez)

5.-SELECT Reviewers.ReviewerID, Name, Email, Role, BOKinterest, LatestRequested, LatestReturned FROM


(Reviewers INNER JOIN ReviewerInt ON Reviewers.ReviewerID=ReviewerInt.ReviewerID) INNER JOIN
LatestReview ON Reviewers.ReviewerID=LatestReview.ReviewerID WHERE ReviewerInt.BOKid='II.A' ORDER BY
BOKinterest, Reviewers.ReviewerID;
Hace una consulta "avanzada" donde combinar 3 tablas y juntar los id solo si coinciden, ademas hara dos tipos de
ordenamiento, primero los ordenara por BOKinterest y despues esa ordenacion la ordenara otra vez por
ReviewerID

6.- SELECT ReviewerID, COUNT(DateAssigned) AS NRequested, COUNT(DateReturned) AS NReturned,


MAX(DateAssigned) AS LatestRequested, MAX(DateReturned) AS LatestReturned FROM Reviews WHERE
DateAssigned>DATEADD('yyyy',-1,NOW()) GROUP BY ReviewerID;
Va a contar los registros de DateAssigned nombrado como NRequested, tambien contara los registros de
DateReturned y los nombrara como NReturned, obtendr el valor mximo de DateReturned y lo nombrar como
LatestReturned y el valor mximo DateAssigned y lo nombrar como LatestRequested. Todo de la tabla Reviews y
los filtrara cuando DateAssigned sea mayor a la fecha que le estan pasando (creo que esta obteniendo un mes atras
al que estamos actualmente), y por ultimo los agrupara por ReviewerID

7.- SELECT DISTINCT Reviewers.ReviewerID, Name FROM Reviewers INNER JOIN Reviews ON
eviewers.ReviewerID=Reviews.ReviewerID
Seleccionara los datos distintos (osea, para que no se repitan) de ReviewerID y Name y hara una union con la tabla
Reviews y Reviewers donde los id coincidan

También podría gustarte