Софтуерно Инженерство
Loading...
+ Нов въпрос
Valleri avatar Valleri 292 Точки

[Homework] Databases - Език SQL – функции, групиране и DDL

Здравейте,

споделям решенията си от домашното.

http://pastebin.com/7Tb1Nx9z

Не съм направил само 32 задача, защото при сетването на ManagerID като 'ON DELETE CASCADE' излиза грешка, че е възможно "may cause cycles or multiple cascade paths". Ако някои има решение на проблема моля да сподели :)

Възможно е някои от заявките, които съм правил с вложен SELECT да се заместят с JOIN или други техники.

11
Databases Basics
petrovaliev95 avatar petrovaliev95 359 Точки

Колега само при мен ли някои от примерните отговори на задачите не съвпадат ?

3
Valleri avatar Valleri 292 Точки

А да, забравих да спомена за това...Направих някакви проверки и според мен отговорите в условието са грешни. Не съм променял записите.

3
ttitto avatar ttitto 1155 Точки

На задача 28 получавам 

Town Number of managers
Issaquah 3
Kenmore 5
Monroe 2
Newport Hills 2

а в условието Newport Hills e с един мениджър.

Това една от грешките ви ли е?

Ето го моя код 

1
ZvetanIG avatar ZvetanIG 917 Точки

Тито,

и аз получих същите резултати като твоите.  Някои цифри ги проверих ръчно за да се убедя, че заявката е е вярна.

2
g.stoyanov avatar g.stoyanov 775 Точки

Ето ги и моите селекти.

 

Потвърждавам че има много грешни примерни резултати (условията мисля че са ок). Може би и теста за примерните резултати е правен на мако по-различна база като контент. И аз имам проблеми с 32 задача, ще се радвам да споделите някакво семпло решение за нея. Както каза колегата преди мен заявките могат да се реализират по много начини, така че споделяйте да се учим!

1
12/02/2015 20:32:10
ttitto avatar ttitto 1155 Точки

Току що забелязах във видеото на Наков (1:15:50), че неговата база има две връзки между Departments и Employees. Тази, която се генерира от скрипта има само една връзка. Вероятно има и други различия по базата. Така че могат да се очакват малки разлики и в резултатите.

1
g.stoyanov avatar g.stoyanov 775 Точки

Да, има разлика, също така има и различни данни в базата.

0
borislavml avatar borislavml 368 Точки

Аз пък си ги имам и двете връзки между Employees и Departments, а не помня да съм си добавял. Май понякога management studio-то скрива(слага една върху друга) двете връзки и се виждат като една. Иначе за данните и аз получвам на някои заяввки коренно различни резултати.Определено има разлика в базите.

0
ttitto avatar ttitto 1155 Точки

Подвел съм се точно от това недоразумение в SSMS да слага две връзки една върху друга

0
ZvetanIG avatar ZvetanIG 917 Точки

Валери, имаш грешни заявки.

Например:
26.  В момента изкарва всички служители, без оглед на заплатата им.
27. Не изкарва всички департаменти.
28. Не показва бройката на мениджърите, а на служителите.
29.  Липсва ти колона EmployeeId.

За сега само това съм забелязъл, ако има още нещо ще ти пиша...

Ето и моето домашно

 

6
14/02/2015 21:57:43
Valleri avatar Valleri 292 Точки

Благодаря :)

0
milen8204 avatar milen8204 296 Точки

@ZvetanIG

Здравей, само да попитам за 22-ра задача не ти ли дава, че имаш повтарящо се потребителско име 'ahill'  за Andrew Hill и Annette Hill. При мен гърми защото имам констрейнт за уникални имена от задачата за създаването на таблица Users. Въпроса ми е махнал си констрейнта за уникалност или аз нещо не съм в ред :). Подобно е и с паролата защото може да има имена, които да са по - малко от 5 символа като се събере първата буква на малкото име и последното име. И аз като теб съм наръшил условието и съм 'защил' 123 след паролата. За да избегна констрейнта за повтарящите се имена съм добавил юзър айди-то към юсърнейма и ги натъпках данните, но имаче ми гърмеше с много злобна грешка заради уникалността. Ето и моя код за 22-ра задача:

INSERT INTO    Users(UserName, UserPassword, FullName, LastLoginDate, GroupID)
SELECT
LOWER(LEFT(FirstName, 1) + LastName) + CAST(EmployeeID AS nvarchar(10)),
LOWER(LEFT(FirstName, 1) + LastName) + '123',
FirstName + ' ' + LastName,
NULL,
14
FROM Employees

0
ZvetanIG avatar ZvetanIG 917 Точки

milen8204,  всичко ти е наред.  Просто задачата не е домислена. Аз имах същите проблеми.

3
Stoyan.Stoyanov avatar Stoyan.Stoyanov 96 Точки

А кой скрипт използвахте при създаването на базата за изходните данни?

SoftUni-Database-MS-SQL-Server.sql - този (от демата на лекцията SQL Basics)? 

Тук, в задачите след 10 се искат имената на мениджърите, които не виждам от къде мога да взема, освен, ако не си ги въведа аз, което предполагам не е целта.

0
14/02/2015 17:57:34
ttitto avatar ttitto 1155 Точки

Мениджърите са също Employees и техните данни са в таблицата Employees

3
Stoyan.Stoyanov avatar Stoyan.Stoyanov 96 Точки

Много благодаря, бях го пропуснал това.

0
kyamaliev avatar kyamaliev 211 Точки

Здравейте, колеги,

Заиграх се със задача 4, ако искаме да добавим и името на отдела, а не само ID-то, как да стане.
Измислих следното:

Чудя се има ли по-лесен начин за това.
Мерси предварително,
Косьо

0
kotow avatar kotow 34 Точки


SELECT AVG(Salary) AS [Average Salary], d.Name as Department
FROM Employees e
JOIN Departments d
ON d.DepartmentId = e.DepartmentId
WHERE d.DepartmentID = 1
GROUP BY d.name

1
kyamaliev avatar kyamaliev 211 Точки

Мерси,
Странното е, че писах разни подобни работи, ама явно не са били съвсем подобни, щото не сработиха :)

0
arsoman avatar arsoman 419 Точки

Здравейте, бърз въпрос:

задача 31 само на мен ли ми е непозната, или съм пропуснал нещо...Тригери мисля, не сме учили, ако сме, моля дайте линк, явно съм пропуснал, ако не сме, защо присъстват тригери в домашното?

Благодаря!

1
crazy7 avatar crazy7 177 Точки

И аз мисля че не сме ги учили, но идеята явно е била да разберем сами как работят. Има доста примери в интернет.

1
borislavml avatar borislavml 368 Точки

В лекцията от петък Т-SQL се говори подробно точно за тригери. Иначе в самата задача 31 никъде не пише да се правт тригери, а само да си подготвим таблицата с логове. Товна не означава, че не можем да ги направим расбира се. Голяма заигравка е, на мен ми беше много интересно.smile

0
Reath avatar Reath 188 Точки

Ето го и моето домашно - цък 

Имаше 3-4 задачки които бяха наистина предизвикателни, поне за мен. Благодаря на колегите постнали решенията си тук, прегледах всички и ми се разясниха някои неща как ще станат.

6