SQL需求是損益視圖串資產負債視圖
用Excel透視表模擬出來的結果就是
用SQL查詢如下:
當Where條件是左邊的視圖的時候
select 損益視圖.年 ,損益視圖.年月 ,損益視圖.期間 ,損益視圖.賬簿名稱 ,損益視圖.組織編碼 ,損益視圖.組織名稱 ,損益視圖.項目名稱 損益項目 ,損益視圖.本期發生數 損益本期 ,資產負債視圖.項目名稱 資產項目 ,資產負債視圖.年初數 資產年初 ,資產負債視圖.期末數 資產期末 from 損益視圖 full join 資產負債視圖 on 損益視圖.年月 = 資產負債視圖.年月 and 損益視圖.年 =資產負債視圖.年 and 損益視圖.期間 = 資產負債視圖.期間 and 損益視圖.賬簿名稱 = 資產負債視圖.賬簿名稱 and 損益視圖.組織編碼 = 資產負債視圖.組織編碼 where 損益視圖.賬簿名稱 ='藍海電子公司主賬簿'
當Where條件是右邊視圖的時候
select 損益視圖.年 ,損益視圖.年月 ,損益視圖.期間 ,損益視圖.賬簿名稱 ,損益視圖.組織編碼 ,損益視圖.組織名稱 ,損益視圖.項目名稱 損益項目 ,損益視圖.本期發生數 損益本期 ,資產負債視圖.項目名稱 資產項目 ,資產負債視圖.年初數 資產年初 ,資產負債視圖.期末數 資產期末 from 損益視圖 full join 資產負債視圖 on 損益視圖.年月 = 資產負債視圖.年月 and 損益視圖.年 =資產負債視圖.年 and 損益視圖.期間 = 資產負債視圖.期間 and 損益視圖.賬簿名稱 = 資產負債視圖.賬簿名稱 and 損益視圖.組織編碼 = 資產負債視圖.組織編碼 --where 損益視圖.賬簿名稱 ='藍海電子公司主賬簿' where 資產負債視圖.賬簿名稱 ='藍海電子公司主賬簿'
所以要慎重選擇Where條件,同時如果這個數據集被CBoard調用的時候,那還要注意這些
項目了,因為Cboard會包一層視圖,這時候項目就可以變成條件了,條件就決定了重復方向。
select * from ( select 損益視圖.年 ,損益視圖.年月 ,損益視圖.期間 ,損益視圖.賬簿名稱 ,損益視圖.組織編碼 ,損益視圖.組織名稱 ,損益視圖.項目名稱 損益項目 ,損益視圖.本期發生數 損益本期 ,資產負債視圖.項目名稱 資產項目 ,資產負債視圖.年初數 資產年初 ,資產負債視圖.期末數 資產期末 from 損益視圖 full join 資產負債視圖 on 損益視圖.年月 = 資產負債視圖.年月 and 損益視圖.年 =資產負債視圖.年 and 損益視圖.期間 = 資產負債視圖.期間 and 損益視圖.賬簿名稱 = 資產負債視圖.賬簿名稱 and 損益視圖.組織編碼 = 資產負債視圖.組織編碼 ) v_cview --where 損益視圖.賬簿名稱 ='藍海電子公司主賬簿' where 賬簿名稱 ='藍海電子公司主賬簿'