Файл: Добрый вечер, отличная работа ! Разберем подробно.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 11.01.2024

Просмотров: 65

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Добрый вечер, отличная работа !Разберем подробно1) Признак того, что сотрудник работал в более чем одном отделе является то, что по нему более чем одна запись в версионной таблице.Ваш вариант решения тоже является абсолютно верным, но всегда надо иметь в голове несколько вариантов, потому предлагаю дополнительно ознакомится с моим:SELECT *FROM HumanResources.EmployeeDepartmentHistoryWHERE BusinessEntityID IN (SELECT BusinessEntityIDFROM HumanResources.EmployeeDepartmentHistoryGROUP BY BusinessEntityIDHAVING COUNT(BusinessEntityID) > 1)2) Замечательно. Достаточно было варианта ниже, хотя ваш вариант тоже верный :SELECT *FROM HumanResources.EmployeeDepartmentHistoryWHERE BusinessEntityID IN (SELECT BusinessEntityIDFROM HumanResources.Employee eWHEREGender = '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 soh1WHERE soh1.TerritoryID = soh.TerritoryID AND soh1.OrderDate BETWEEN '20070101' AND '20071231') as '/'FROM Sales.SalesOrderHeader sohWHERE soh.OrderDate BETWEEN '20070101' AND '20071231'Добрый вечер, отличная работа !Разберем подробно1) Великолепно2) Отлично, даже 2 варианта, супер. Было бы еще лучше, если бы вы считали возраст динамически, в зависимости от текущей даты. Ожидаемый запрос ниже:SELECT *FROM HumanResources.EmployeeDepartmentHistoryWHERE BusinessEntityID IN (SELECT BusinessEntityIDFROM HumanResources.Employee eWHEREGender = '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 soh1WHERE soh1.TerritoryID = soh.TerritoryID AND soh1.OrderDate BETWEEN '20070101' AND '20071231') as '/'FROM Sales.SalesOrderHeader sohWHERE soh.OrderDate BETWEEN '20070101' AND '20071231'