Crystal 带 like 的公式 case 语句

Crystal formula case statement with like

我正在尝试将 sql 案例语句转换为 crystal 公式。

sql 中的 select 有这个:

...
,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时,我无法将其放入报表设计的列中。所以我的想法是为每一列使用一个公式selected。到目前为止,我有第一个公式,但它不会让我保存它:

公式名=部门:

select {Person_Facilities.Department_name} 
case is  like "Occ%" : {Person_Facilities.Department2}

错误好像是这样的。我查了一下 crystal like 似乎没问题,除了他们使用 "is" 作为接受的答案,但是当我添加 "is" 时,错误似乎是 "is" 当我尝试保存它。

这个公式有什么问题所以我可以使用 like 和 case?

有更好的方法吗?我想我可以使用视图,但我的老板不希望视图使数据库混乱。在 crystal 中是否使用公式来执行此操作? sql 也处理了 null,我没有这样做,但我不确定此时如何合并它。我是 crystal 的新手,我的团队不喜欢提问。我们有 Crystal Reports 2008 和 SQL server 2008 R2。

不确定这是否是您要查找的内容,但试试这个;

select {Person_Facilities.Department_name} 
case "Occ%" : {Person_Facilities.Department2}
default : 'Unknown';

默认是可选的。

使用LIKE运算符,如下;

If {Command_Main.Name} LIKE '*Manager*' then Do Something

要处理 CR 中的 NULLS,可以在公式编辑器中选择这样做。见下文。将其从 空值异常 更改为 空值默认值