2014-09-18 33 views
0

我的公司使用數字作爲系統標識符分支。問題是我的最終用戶不喜歡將000201作爲分支名稱。因此,我試圖將這些數字轉換爲字符串,然後將衛星位置捲起到主分支中。分支格式如下:插入Crystal Reports之前的字段的SQL側分組

BBBBSS所以,作爲一個例子,納什維爾主枝將遵循000201和所有衛星將按照順序000202,000203,000204.

我想我們所有的細節捲起進入「納什維爾」。因此,ORGID就像0002 **一樣,它會將所有內容彙總到一個名爲「納什維爾」的字段中。

對不起,如果我不太清楚。我一直把頭撞在牆上,所以我的思緒混亂。

+0

您的需求非常混亂。你可以編輯你的問題,並使其更簡單(可能是列表點)。謝謝 – aMazing 2014-09-18 21:51:35

回答

0

如果我理解你的問題,至少有兩種方法可以想到完成這件事;

第一種方式很簡單,如果你有很多分支,我會爲第二種方式添加一個case語句。

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) 

這第二個方式,您將有一個單獨的表來保存分行名稱等出於演示,我將調用此表OrgTable包含您的「0002」 ID的ORGID,幷包含「納什維爾」一ORGNAME。

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,

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!"