這一節我将完成報表的查詢方案設計。
首先,我從北京财政局網站,找到了預決算公開的相關信息,如圖5.0:
預決算數據 圖5.0
可以看到,類似财政的數據,支出功能分類都是按三級彙總的形式在左側分行顯示;項目分類作為标題字段列顯示,支出金額都是彙總顯示的。
所謂支出功能分類,就是财政撥款的支出科目,這個支出科目是按功能來分類的,具體就是按一般公共服務、外交、公共安全、教育、科技等這些功能來分類的。
支出功能分類科目使用三級科目,編碼共7位,其中:一級編碼占3位、二級編碼占5位、三級編碼占7位。具體解析參考 圖5.1與 圖5.2。
支出功能分類樹形 圖5.1
支出功能分類列表 圖5.2
下面是報表方案效果圖 5.3,上面前三行為查詢設置和條件與報表标題行,從第四行開始為SQL語句自動生成的數據區域。
報表效果 圖 5.3
數據從database 到報表的查詢彙總示意圖 5.4
數據彙總方案 圖5.4
總體來說,報表是根據功能分類和單位信息進行分類彙總的,并把項目分類根據行數據進行拆分,能熟練使用數據透視表的朋友應該很容易理解這個分行分列操作,但是數據透視表對數據源要求比較高,涉及複雜的彙總,還要使用公式設置輔助列,這對于某些個性化操作就很難實現,一些表格使用不熟練的朋友也很難辦到。因此使用宏進行SQL查詢,隐藏實現細節,使用者隻需更新數據源和點點按鈕就實現報表彙總的方案就好很多。
下面根據數據彙總方案 圖5.4來初步分析一下src工作表:
1、數據量适中,一個月數據增量約3千條,使用宏SQL查詢不會産生瓶頸。列數也不算多,從系統導出的源數據列為36列,而從src查詢的列隻有13列,方便查詢。
2、查詢主要是對【支出功能分類】這個列進行分行彙總,詳細規則如下:
① 對計劃金額,當支出功能分類和預算單位一緻時,就将源數據中的計劃金額進行合計;
② 對指标可用金額、指标已用金額、指标總金額,這三個列都是跟項目本身相關的。下面着重分析一下指标總金額在單位用款計劃表中與項目和計劃金額的關系。
指标總金額,在 “相同的項目”上是相等的,在src源中 “相同的項目”會因為錄入的計劃而重複。關于相同的項目:項目類别不同的項目肯定不是一個項目,除了項目類别,區分是否是同一個項目,使用【項目 單位 支出功能分類 政府經濟分類 部門經費分類 政府采購】這六個字段,這六個字段隻要有一個不同,就認為這是不同的項目。
具體請參考圖5.5,審計局的測算類公用經費項目,根據上面的區分原則,分為六個項目。這種情況是在預算編制細化過程中産生的,原本在項目儲備階段項目名稱是不能重複的,但是,在項目細化過程中,一個項目資金要根據功能分類、經濟分類、是否采購等區分多種用途,每個用途都會分配指标,就造成了相同的項目名稱的指标被細化項分割成了多個。
紅框内的兩條計劃才是同一個項目,在彙總時這項目的指标總金額不可以合計,隻能選擇其中一條,其他未在紅框内的才能和這個一起彙總合計。指标可用金額與指标已用金額也與此類同。但是紅框内的計劃金額要根據 ① 的要求彙總。
項目區分 圖 5.5
指标可用金額,即可用指标,是單位在錄入用款計劃後,細化項目的指标總金額減掉錄入的計劃金額而形成的。彙總此字段的規則與指标總金額的規則一緻。需注意的是,可能存在在途資金會導緻指标可用金額大于計劃金額合計數的情況。在途資金是多崗審核形成的,第一崗把計劃送審到第二崗,第二崗未進行審核,第三崗看不到這筆計劃,但是可以看到以前錄入計劃的項目,這項目的指标部分已經被第一崗錄入的計劃修改了,所以就造成了項目的指标可用金額大于計劃金額合計數的情況。
指标已用金額,即指标餘額,指标總金額與指标可用金額的差額。指标已用金額小于等于指标總金額。
3、單位字段列作為最底層的行分級數據進行彙總。因為可能相同的支出功能分類包括很多單位,所以再把單位做支出功能分類的下級彙總。
4、項目類别,此列與上面的列數據處理不同,要分行彙總。項目類别數據包括工資福利支出、對個人和家庭的補助支出、部門預算項目、專項資金項目和其他。把這些類别數據分别彙總,形成新的彙總列,其中專項資金項目包含其他類别的數據。
從上面對src表的分析,要實現報表圖5.3效果圖,可以得到以下SQL查詢方法:
第一步,先把同一個項目的計劃進行初步彙總,形成每條數據都是不同項目的臨時查詢表。這一步還要加入查詢條件,就是圖5.3中前三行标黃單元格,去掉無關數據,提高查詢效率;
第二步,根據第一步生成的臨時查詢表,對功能分類和單位進行分級彙總,生成五級的彙總臨時表,最後把這些分級彙總表進行合并排序,生成最後的報表。這一步要生成排序字段(圖 5.3),五級彙總數據行的排序就依靠這個排序字段實現。
本節内容到此結束,下一節内容,我将詳細說明這兩步查詢的實現。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!