合併報表專案取數說明

2021-04-20 02:03:13 字數 1010 閱讀 8313

合併報表為了節省磁碟空間,服務端對專案資料儲存採用了橫表的方式,取數上有些複雜,特說明和示例如下:

比如要取2023年8月份、月報、幣別編碼為「001」的人民幣、公司編碼為「c01」的個別表資產負債表中,編碼為「1001」的專案的本期發生數。

and b.fnumber='1001'

其中a.ftablename是編碼為「1001」的專案的資料所在的表名(比如為t_csl_itemdataentry001),a.ffieldname是欄位名(比如為f1),a.ftablename所得的表是程式動態生成的,目前是乙個表300個字段,當有301個專案時就會有兩個表,601個專案時就有三個表,依此類推,表名分別為:t_csl_itemdataentry001、t_csl_itemdataentry002、t_csl_itemdataentry003等等。

查詢專案資料的sql如下:

select sum(d1.f1) from t_csl_itemdata h,t_csl_itemdataentry d,t_csl_itemdataentry001 d1,t_org_baseunit company,t_bd_currency cy

where h.fid=d.fitemdataid and d.fid=d1.fid and h.fcompanyid=company.fid and h.fcurrencyid=cy.fid

and company.fnumber='001' --公司

and cy.fnumber='c01'   --幣別

and h.fperiodtype=3    --月報

and h.fdatasource=1    --個別報表

and h.fcommitstatus=3   --已經集團確認的

and d.fdataelement=2   --本期發生數

and d.fvaluetype=1    --金額

and d.fyear=2006     --2023年

and d.fperiod=8      --8月

合併報表優化記錄

這是早期的合併報表優化記錄,內容不多,保留下來備查。一.查詢源報表是否存在 select 1 where exists select from t csl cslreport where fsourcerptid 4583062d 010a 1000 e002 63bbc0a8ef02b712ea2...