Я пытаюсь преобразовать SQL-оператор case в формулу Crystal.
В select в sql было это:
...
,pf.Status_category AS Category
,CASE WHEN p.degree LIKE '%P%' AND
pf.department_name LIKE 'Occ%' THEN isnull(pf.department2, '') ELSE isnull(pf.department_name, '') END AS Department,
CASE WHEN p.degree LIKE '%P%' AND pf.department_name LIKE 'Occ%' THEN isnull(pf.Section2, '') ELSE isnull(pf.Section_name, '') END AS Section,
CASE WHEN p.degree LIKE '%P%' AND pf.department_name LIKE 'Occ%' THEN isnull(pf.department3, '') ELSE isnull(pf.department2, '') END AS [Department 2],
CASE WHEN p.degree LIKE '%P%' AND pf.department_name LIKE 'Occ%' THEN isnull(pf.Section3, '') ELSE isnull(pf.Section2, '') END AS [Section 2],
pdd.DepartmentName AS DP
,pdv.PrivilegeDetailText AS Privilages
...
FROM dbo.Person_PrivDtl_V AS pdv INNER JOIN
dbo.Person_Privs_Facs_V ON pdv.M_ID = dbo.Person_Privs_Facs_V.Person_Priv_M_ID INNER JOIN
dbo.PrivDefDepartments_PDF AS pdd ON pdd.PDDept_ID = pdv.PDDept_ID INNER JOIN
dbo.Person AS p ON pdv.Person_ID = p.Person_ID INNER JOIN
dbo.Person_Facilities AS pf ON pf.FacCode = dbo.Person_Privs_Facs_V.FacCode AND pdv.Person_ID = pf.Person_ID
Когда я конвертирую это в Crystal, я могу 't поместить это в столбцы дизайна отчета. Поэтому моя идея - использовать формулу для каждого выбранного столбца. Пока что у меня есть это для первой формулы, но она не позволит мне сохранить ее:
Имя формулы = Отдел:
select {Person_Facilities.Department_name}
case is like "Occ%" : {Person_Facilities.Department2}
Ошибка, похоже, похожа. Я посмотрел кристалл, как , и кажется, что все в порядке, за исключением того, что они используют "is" для принятого ответа, но когда я добавляю "is", ошибка кажется "is", когда я пытаюсь сохранить его.
Что не так с этой формулой, чтобы я мог использовать подобное и регистр?
Есть ли лучший способ сделать это? Я предполагаю, что могу использовать представление, но мой босс не хочет, чтобы представления загромождали базу данных. Является ли использование формулы способ сделать это в кристалле? SQL также обработал нуль, что я не делаю, но я не уверен, как включить это в данный момент. Я довольно новичок в кристалле, и моя команда не любит вопросы. У нас есть Crystal Reports 2008 и SQL Server 2008 R2.