注:在之前工作的時候,數據需要根據時間查詢出當月值和上月的值。
語法:
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 WHEREB.TIME + INTERVAL '1 MONTH' = A.TIME
建了兩張臨時表,然后就是說A表的值我作為的當月的值,B表的值我作為了上個月的值,我是用B表的時間加一個月匹配上A表的時間的。
我真正操作的話,我會把時間全部定義為那個月的一號,這樣子方便加減。