2015-01-14 3 views
0

То, что я пытаюсь сделать, это сузить запрос в предложении from, используя WHERE LienType = 'No Private' из псевдонима Private Benefits, созданного из case-case. Как мне это сделать?Использование псевдонима в выражении WHERE SQL

SELECT DISTINCT ClientId 
,ClientFirstName 
,ClientLastName 
, Case when (select COUNT(*) 
       from FullProductView fpvb 
       where fpvb.clientid=fpva.clientid 
       and fpvb.Lientype ='Private Lien') = 0 then 'No Private' 
     else 'Private Yes' end 'Private Benefits' 
from fullproductview fpva 
WHERE CaseId = 420 
Order By 'Private Benefits' 
+0

Я думаю, что решение его вопроса не дублировать, но реструктурировать запроса: ВЫБРАТЬ \t ClientId, \t ClientFirstName, \t ClientLastName, \t СЛУЧАЙ \t \t КОГДА SUM (случай, когда LienType = 'Private Lien' THEN 1 ELSE 0 END)> 0 \t \t THEN 'Private Да' \t \t ELSE 'Частный Нет' \t END PrivateBenefits ОТ \t FullProductView FPVA ГДЕ \t CaseId = 420 GROUP BY \t ClientId, \t ClientFirstName, \t ClientLastName ORDER BY \t ПРИ \t \t ПРИ SUM (случай, когда LienType = 'Частный Лянь' ТОГДА 1 ИНАЧЕ 0 END)> 0 \t \t THEN 'Private Yes' \t \t ELSE 'Private No' \t END; –

ответ

1

Вы не можете напрямую. Только два варианта использования вычисленного поля в предложении WHERE - это создание представления с вычисленным полем или подзапросом. Я думаю, что создать представление - это простой способ.

EDIT

Попробуйте это:

CREATE VIEW vw_MyView AS 
SELECT DISTINCT ClientId 
,ClientFirstName 
,ClientLastName 
, Case when (select COUNT(*) 
       from FullProductView fpvb 
       where fpvb.clientid=fpva.clientid 
       and fpvb.Lientype ='Private Lien') = 0 then 'No Private' 
     else 'Private Yes' end 'Private Benefits' 
from fullproductview fpva 
WHERE CaseId = 420 

Тогда вы можете сделать:

SELECT * from vw_MyView WHERE LienType = 'No Private' Order By 'Private Benefits' 

также не является хорошей идеей, чтобы использовать пробелы в именах полей. Вам нужно проверить, работает ли это с вашим механизмом базы данных (о котором вы не говорите).

+0

Как бы вы структурировали представление? – EAJ5

Смежные вопросы