2016-09-30 3 views
0

Я пытаюсь запросить сотрудников и их отделы. У сотрудничающих лиц есть ключ кафедры, но они не подпадают под этот отдел. Например, секратарии, которые работают для директора, не должны находиться под ее собственным департаментом (ADVIES & BEHEER), но под режиссером (Directie)Параметр отчета в сочетании с CASE

Но когда я выбираю отдел с параметром отчета (@Afdeling).

AND ORG.Afdeling = @Afdeling 

Мне нужен только выбранный отдел. Но он возвращает всех eployees и их отделы, назначенные CASE, из-за ключа отдела. Когда я делаю ключ отдела, он все равно возвращает сотрудников в подраздел, назначенный CASE. Но я хочу только, чтобы выбранный отдел. Например:

enter image description here

Может кто-нибудь помочь?

Спасибо

SELECT CASE ORG.Afdeling 
     WHEN 'ADVIES & BEHEER' 
     THEN 
      CASE mdw.Naam 
      WHEN 'Verhaag-Vanmaris, APM' 
      THEN 'Directie' 
      WHEN 'Bouten, MJC' 
      THEN 'Directie' 
      WHEN 'Vallen-Vullers, GMS' 
      THEN 'Burgemeester en wethouders' 
      END 
     ELSE UPPER(LEFT(ORG.Afdeling, 1)) + LOWER(RIGHT(ORG.Afdeling, LEN(ORG.Afdeling) - 1)) 
     END AS Afdeling 
FROM x 
WHERE YEAR(CTE.Datum) = @Jaar 
AND ORG.Afdeling = @Afdeling 
+0

Nevermind ребята .. Я перевернул ее. Я присоединяюсь к своему CTE, и он отлично работает, практически не влияя на производительность. Благодаря!! –

ответ

0

Решение в основном сводились к:

WITH CTE AS(
SELECT X.SUM(CALLS), D.Dep, EMPL.empl 
FROM X 
LEFT JOIN EMPL 
ON X.DESPHONE = EMPL.PHONE 
LEFT JOIN DEPT AS D 
ON EMPL.EMP_ID = D.EMP_ID 
WHERE D.Dep = @Department 
GROUP BY D.Dep, EMPL.empl 
) 

SELECT * 
FROM CTE