我的公司使用数字作为分支机构的系统标识符。问题是我的最终用户不喜欢将000201视为分支名称。因此,我试图将这些数字转换为字符串,然后将卫星位置汇总到主分支。分支格式如下:
BBBBSS因此,作为一个例子,纳什维尔主要分支将遵循000201,所有卫星将按顺序关注000202,000203,000204。我希望我们所有的细节都能汇集到纳什维尔"。因此,任何ORGID就像0002 **的实例一样,它会将所有内容汇总到一个名为" Nashville"的字段中。
很抱歉,如果我不太清楚。我一直把头撞在墙上,所以我的思绪混乱不堪。
答案 0 :(得分:0)
如果我理解你的问题,我至少有两种方法可以实现这个目标;
第一种方式是直截了当,你为每个分支添加一个案例陈述,如果你有很多分支,我会选择第二种方式。
Select case SUBSTRING(cast(Branch.Id as varchar(10)), 1, 4 )
when '0002' then 'Nashville'
when '0003' then 'Branch 03'
when '0004' then 'Branch 04'
else SUBSTRING(cast(Branch.Id as varchar(10)), 1, 4 ) end OrgName,
COUNT(*)
from Branch group by SUBSTRING(cast(Branch.Id as varchar(10)), 1, 4 )
这第二种方式你将有一个单独的表来保持分支名称等。为了演示,我将使用包含你的" 0002"的OrgId调用此表OrgTable。 Ids和包含" Nashville"的
Select OrgTable.OrgName, count(*)
from Branch
inner join OrgTable on ( OrgTable.OrgId = SUBSTRING(cast(Branch.Id as varchar(10)), 1, 4 ))
Group By OrgTable.OrgName
我还没有检查过上面的SQL没有语法错误,但希望你能得到图片。
HTH,
答案 1 :(得分:0)
您可以在CR中创建一个简单的公式,将ORGID转换为分支名称:
//Convert ORGID to string and save branch code
local stringvar branch := left(totext({Table.ORGID},0,''),4);
//Display city based on branch code
select branch
case "0002" : "Nashville"
case "0003" : "Other City"
<...>
default : "No matching branch!"