以下内容可能需要數據庫的相關知識才能更容易理解,不過我會盡量描述的通俗易懂一些。
首先準備兩個表格文件:一個命名為 “database.et” 文件作為被查詢的數據存儲文件;另一個命名為 “報表.et” 文件,作為查詢的顯示窗口。(這兩個文件要打開WPS後創建:新建表格文件,另存為,選et擴展名)
文件名 圖 3.0
database.et 文件中有兩個工作表,分别命名為 src 與 set。src作為将要查詢的主要數據源,存放準備好的數據,本表數據非真實數據,數據表格結構模仿預算一體化系統中的用款計劃表;set 表存放一些擴展數據集合。如 圖3.1、圖3.2
database set 圖3.2
下面分别解析一下 “database src 圖3.1” 和 “database set 圖3.2” 的表格結構。
src表其實叫做 “單位申請計劃表”,共13個字段列,單位發起的某個項目的一條用款計劃就生成了一條記錄。
一個項目當年預算的總金額叫指标金額,單位按計劃向财政申請撥款的資金就是計劃金額,單位錄入計劃申請時,系統将這筆計劃金額累加到項目的已用指标裡,同時扣減指标餘額。
這裡面項目有重複的,項目重複有兩種情況:
一是上文說到的單位将一個項目錄入了多個計劃,這很好理解;
二是這個表的項目信息實際上來源于系統内部的 “項目細化表”和項目其他相關表,從項目這些相關表獲取的字段有 9 個,分别是:
1-[項目]、2-[項目類别]、3-[支出功能分類]、4-[政府經濟分類]、5-[部門經濟分類]、6-[指标金額]、7-[已用指标]、8-[指标餘額]、9-[是否政府采購]。
學過數據庫的朋友都知道表内的關鍵要素都有唯一編碼,而項目編碼這個關鍵信息并沒有體現在src( 單位申請計劃表)表中,所以在src 表中并不是按項目名(src 表中的第三個字段列)來唯一區分的,本表區分不同項目隻能用表中的多個字段列來區分:項目 支出功能分類 政府經濟分類 部門經濟分類 是否政府采購。至于為什麼要區分出某單位的項目,這在以後我再用到的時候會更詳細地說明,目前隻做了解即可。
另外需要說明的是,盡管這個表看起來有些别扭,但是構建這個查詢報表是從實際使用出發,系統完成以後,可以直接使用的。所以src表中的列名與系統導出的數據保持一緻,隻是删除了一些不重要的列,實際使用時,隻需将系統導出的數據,包括标題行所有數據覆蓋src中的數據即可。
set 表是查詢src 表時需要外連接的一些數據集。借助這些數據集,在以後的SQL查詢語句中,可以達到我想要的報表格式。
(什麼是外連接,這是關系型數據庫的基本概念,關系數據庫是由多個表組成的,而這些表都是互相有關系的,通常有一對一、一對多、多對多這些關聯,所以叫做關系型數據庫。所以外連接就是以某個表為基礎去有關聯的表中把對應數據查詢出來。)
本節内容需要準備大量數據,并且這些數據有内在關聯關系,這些數據還不能是真實數據,所以花費了我大量時間,更新有點晚了。
下一節,進行調試查詢連接這兩個表。
,