Oracle - WITH AS -用於查詢當月與上月數據


注:在之前工作的時候,數據需要根據時間查詢出當月值和上月的值。

語法:

WITH A AS(
SELECT * FROM TABLE
),
B AS (
SELECT * FROM TABLE
)
SELECT * FROM A,B

 注:個人理解為with后面跟着幾張臨時表,然后a為臨時表名,可以有多張臨時表,然后最后一個查詢的表可以用臨時表

例:

WITH A AS(
SELECT ID,TIME,SUM FROM TABLE
),
B AS (
SELECT ID,TIME,SUM FROM TABLE
)
SELECT A.ID,
A.TIME AS NOWTIME,A.SUM AS NOWSUM,
B.TIME AS LASTTIME,B.NUM AS LASTNUM
FROM A LEFT JOIN B ON A.ID=B.ID WHERE B.TIME + INTERVAL '1 MONTH' = A.TIME

 建了兩張臨時表,然后就是說A表的值我作為的當月的值,B表的值我作為了上個月的值,我是用B表的時間加一個月匹配上A表的時間的。

我真正操作的話,我會把時間全部定義為那個月的一號,這樣子方便加減。


免責聲明!

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



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