【SQL】ORACLE生成臨時表


在日常的SQL查詢中,我們需要對要查詢的數據進行事先處理,然后再在預先處理好的數據里面進行查詢。此時我們就需要用到臨時表了,將數據預先處理好放到臨時表里面,然后再在臨時表里根據我們需要的條件進行查詢。

假設我們有一個收入表 :incoming   ,里面的字段分別為:id,name,amt,cur  我們要求每個人的amt換算成RMB之后的和。由於幣種有區別,我們需要事先將amt對應幣種按照匯率換算成人民幣再進行計算。

另一個表時xrt表,存放每個幣種對應人民幣牌價。

有兩種方法,一種是用with   as方法,事先生成一個臨時表temp,然后再在這個臨時表里查。

with temp as
(
select name, amt*(select cnyrate from xrt x where x.cur=i.cur ) from incoming 

)
select name, sum(amt) from incoming group by name

  第二個方法是使用select方法

select name,sum(amt) from (select name,amt*(selct cnyrate from xrt x where x.cur=i.cur) from incoming) temp group by name;

  

 


免責聲明!

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



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