SQL Full Join 的 Where條件


 

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 賬簿名稱 ='藍海電子公司主賬簿'

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM