Loading...
Valleri avatar Valleri 304 Точки

[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 358 Точки

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

3
Valleri avatar Valleri 304 Точки

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

3
ttitto avatar ttitto 1153 Точки

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

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

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

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

Ето го моя код 

1
ZvetanIG avatar ZvetanIG 907 Точки

Тито,

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

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

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

 

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

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

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

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

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

0
borislavml avatar borislavml 368 Точки

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

0
ttitto avatar ttitto 1153 Точки

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

0
ZvetanIG avatar ZvetanIG 907 Точки

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

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

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

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

 

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

Благодаря :)

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 907 Точки

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 1153 Точки

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

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

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

0
kyamaliev avatar kyamaliev 209 Точки

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

Заиграх се със задача 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 209 Точки

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

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
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.