SELECT S1.year, S1.sale,CASEWHEN S1.sale= S2.sa1e THEM '→'WHEN S1.sale >S2.sa1e THEN'←'WHEN S1.sale < S2.sa1e THEN'↓'ELSE'--'ENDAS var
FROM Sales S1,Sales S2
WHERE S2.year=S1.year-1ORDERBYyear;
2.关联子查询完成
--求出是增长了还是减少了,抑或是维持现状 ( 1 ): 使用关联子查询--求出是增长了还是减少了,抑或是维持现状 ( 1 ): 使用关联子查询SELECT
S1.year,
S1.sale,CASEWHEN sale =(SELECT sale FROM Sales S2 WHERE S2.year= S1.year-1)THEN'→'--持平WHEN sale >(SELECT sale FROM Sales S2 WHERE S2.year= S1.year-1)THEN'个'-增长
WHEN sale <(SELECT sale FROM Sales S2 WHERE S2.year= S1.year-1)THEN'↓'--减少ELSE'-'ENDAS var
FROM
Sales S1
ORDERBYYEAR;
3.结果
二、示例: 上例中的特殊情况——年份缺失,与最近年对比趋势
1. 关联子查询
--求每一年与过去最临近的年份之间的营业额之差 ( 1 ):结果里不包含 最早的年份SELECT
S2.yearAS pre_year,
S1.yearAS now_year,
S2.sale AS pre_sale,
S1.sale AS now_sale,
S1.sale - S2.sale AS diff
FROM
Sales2 S1,
Sales2 S2
WHERE
S2.year=(SELECTMAX(YEAR)FROM Sales2 S3 WHERE S1.year> S3.year)ORDERBY
now_year;