ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.01.2024
Просмотров: 18
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Добрый вечер, отличная работа !
Разберем подробно
1) Признак того, что сотрудник работал в более чем одном отделе является то, что по нему более чем одна запись в версионной таблице.
Ваш вариант решения тоже является абсолютно верным, но всегда надо иметь в голове несколько вариантов, потому предлагаю дополнительно ознакомится с моим:
SELECT *
FROM HumanResources.EmployeeDepartmentHistory
WHERE BusinessEntityID IN (
SELECT BusinessEntityID
FROM HumanResources.EmployeeDepartmentHistory
GROUP BY BusinessEntityID
HAVING COUNT(BusinessEntityID) > 1
)
2) Замечательно. Достаточно было варианта ниже, хотя ваш вариант тоже верный :
SELECT *
FROM HumanResources.EmployeeDepartmentHistory
WHERE BusinessEntityID IN (
SELECT BusinessEntityID
FROM HumanResources.Employee e
WHERE
Gender = 'F'
AND DATEADD(YEAR, 30, BirthDate) < GETDATE()
)
3) Все абсолютно верно.
4) Отличная работа, вариантов как вы понимаете много, текущая версия отличная. Для ознакомления через коррелирующий:
SELECT soh.TerritoryID
,soh.SalesOrderID
,soh.TotalDue * 60.0 as TotalDue -- RUB
,soh.TotalDue/(
SELECT SUM(soh1.TotalDue)
FROM Sales.SalesOrderHeader soh1
WHERE soh1.TerritoryID = soh.TerritoryID AND soh1.OrderDate BETWEEN '20070101' AND '20071231'
) as '/'
FROM Sales.SalesOrderHeader soh
WHERE soh.OrderDate BETWEEN '20070101' AND '20071231'
Добрый вечер, отличная работа !
Разберем подробно
1) Великолепно
2) Отлично, даже 2 варианта, супер. Было бы еще лучше, если бы вы считали возраст динамически, в зависимости от текущей даты. Ожидаемый запрос ниже:
SELECT *
FROM HumanResources.EmployeeDepartmentHistory
WHERE BusinessEntityID IN (
SELECT BusinessEntityID
FROM HumanResources.Employee e
WHERE
Gender = 'F'
AND DATEADD(YEAR, 30, BirthDate) < GETDATE()
3) Великолепно
4) Отличная работа, вариантов как вы понимаете много, текущая версия отличная. Для ознакомления через коррелирующий:
SELECT soh.TerritoryID
,soh.SalesOrderID
,soh.TotalDue * 60.0 as TotalDue -- RUB
,soh.TotalDue/(
SELECT SUM(soh1.TotalDue)
FROM Sales.SalesOrderHeader soh1
WHERE soh1.TerritoryID = soh.TerritoryID AND soh1.OrderDate BETWEEN '20070101' AND '20071231'
) as '/'
FROM Sales.SalesOrderHeader soh
WHERE soh.OrderDate BETWEEN '20070101' AND '20071231'