У меня есть следующий запрос, который получает в результате языка, говорящего сотрудника и его соответствующий уровень:
SELECT E.EmployeeId
,ISNULL(L.ID ,0) AS LanguageId
,L.Label AS Language,
ll.Label AS LanguageLevel
FROM Employee e
LEFT JOIN AF_AdminFile aaf ON e.AdminFileId = aaf.AdminFileId
LEFT JOIN AF_Language al ON aaf.AdminFileId = al.AdminFileId
LEFT JOIN Language l ON al.LanguageId = l.ID
LEFT JOIN LanguageLevel ll ON al.LanguageLevelId = ll.LanguageLevelId
ORDER BY e.EmployeeId
Результат такой, как показано ниже:
Для сотрудника с сотрудником CovereeeID = 6 он говорит по-английски / свободно, испаннен / хороший, французский / родной язык.
Знание, что у меня 187 разных языков на моем языке таблицы и 4 языковых уровня в моем столе LangeaGelevel (ярмарка, свободно , Хороший, родной язык)
Я хочу получить только манушку и свободный язык, как ниже:
EmployeeId MotherTongue Fluent
6 French English
1 ответ
Выход из вашего текущего запроса следит за рисунком ненормального магазина ключа значений. В этом случае ключевые ключи являются языковыми уровнями, а значения языки. Один из способов обработки этого является совокупность работника, а затем использовать логику поворота, чтобы получить нужный которыми вы хотите.
SELECT
e.EmployeeId,
MAX(CASE WHEN ll.label = 'Mother Tongue' THEN l.label END) AS MotherTongue,
MAX(CASE WHEN ll.label = 'Fluent' THEN l.label END) AS Fluent
FROM Employee e
LEFT JOIN AF_AdminFile aaf
ON e.AdminFileId = aaf.AdminFileId
LEFT JOIN AF_Language al
ON aaf.AdminFileId = al.AdminFileId
LEFT JOIN Language l
ON al.LanguageId = l.ID
LEFT JOIN LanguageLevel ll
ON al.LanguageLevelId = ll.LanguageLevelId
GROUP BY
e.EmployeeId
ORDER BY
e.EmployeeId;
Похожие вопросы
Связанные вопросы
Новые вопросы
sql
Язык структурированных запросов (SQL) - это язык запросов к базам данных. Вопросы должны включать примеры кода, структуру таблицы, примеры данных и тег для используемой реализации СУБД (например, MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2 и т. Д.). Если ваш вопрос относится исключительно к конкретной СУБД (использует определенные расширения / функции), используйте вместо этого тег этой СУБД. Ответы на вопросы, помеченные SQL, должны использовать стандарт ISO / IEC SQL.