Loading...
lstefanov avatar lstefanov 13 Точки

Домашно: SQL основи / Introduction to SQL - липсваща таблица Managers?

Здравейте,

Идентфикаторът ManagerID е заложен в таблиците Employees и Departments на базата данни SoftUni, но таблица Managers липсва, което според мен затруднява адекватното и пълностно изпълнение на някои от задачите.

Пита се - грешката от недоглеждане ли е, или се очаква да проявим инициативност и сами да си създадем таблицата? : ) Или ако проявим креативност да изпълним куеритата в рамките на възможното, без да модифицираме базата данни, пак ще се зачете като вярно домашно?

Мерси : )

Тагове:
1
Databases Basics
nikola.m.nikolov avatar nikola.m.nikolov 830 Точки

В таблицата има self reference

3
a.angelov avatar a.angelov 1316 Точки

Няма такава таблица - ако се загледаш добре имаш self relationship /връзка едно към едно/ в таблицата Employee. Т.е. Manager-а е дефакто Employee. И ManagerID-то реално отговаря на някое EmployeeID.

2
28/06/2015 23:07:40
ttitto avatar ttitto 1153 Точки

Имайки предвид, че мениджърите също са служители става ясно, че managerId води към Id в Employees таблицата. Това е self relation. Рагледай диаграмата на базата в SQL Management Studio и ще видиш тази връзка.

2
lstefanov avatar lstefanov 13 Точки

окей, но при този дизайн на базата данни е изключено изпълнена заявка да изкарва име на мениджър в резултатите - единствено ще се показва определено ID в цифров вид, и толкова.

жалко, не стои красиво laugh

 

-2
nikola.m.nikolov avatar nikola.m.nikolov 830 Точки

Не е вярно. И при този тип relation пак може да се прави JOIN.

1
vdoynov avatar vdoynov 40 Точки

http://pastebin.com/8N9FdL3t

0
anto84 avatar anto84 16 Точки

Здравейте искам да исползвам темата да питам как сте решили задача 23

Problem 23.Write a SQL query to find all the employees and the manager for each of them along with the employees that do not have manager. 

Имам следните две заявки:

SELECT e.FirstName, e.LastName, m.FirstName AS ManagerFirstName, m.LastName AS ManagerLastName
FROM dbo.Employees e, dbo.Employees m
WHERE m.EmployeeID = e.ManagerID

и

SELECT*FROM dbo.Employees
WHERE ManagerID IS NULL

Но не знам как да ги комбинирам за да извадя това което се иска от базата... Ще се радвам ако някой обясни своето решение. Благодаря :-)

1
Hristo_Penchev avatar Hristo_Penchev 389 Точки

Става с OUTER JOIN, разгледай презентацията от лекцията, там е обяснено добре. Иначе ето моя код:

 

SELECT e.FirstName + ' ' + e.LastName AS [Employee], m.FirstName + ' ' + m.LastName AS [Manager]
FROM Employees e
    LEFT OUTER JOIN Employees m
    ON e.ManagerID = m.EmployeeID

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