table
city time ang
杭州 2012-5-31 1.3
宁波 2012-5-31 0.4
湖州 2012-5-31 1.1
杭州 2012-5-30 0.7
宁波 2012-5-30 1.2
湖州 2012-5-30 0.5
要得到的数据
city a b avg=a-b
杭州 1.3 0.7 0.6
宁波 0.4 1.2 -0.8
湖州 1.1 0.5 0.6
city time ang
杭州 2012-5-31 1.3
宁波 2012-5-31 0.4
湖州 2012-5-31 1.1
杭州 2012-5-30 0.7
宁波 2012-5-30 1.2
湖州 2012-5-30 0.5
要得到的数据
city a b avg=a-b
杭州 1.3 0.7 0.6
宁波 0.4 1.2 -0.8
湖州 1.1 0.5 0.6
SELECT
A.CITY,A.ANG,B.ANG,AVG = A.ANG-B.ANG
FROM TABLE A
LEFT JOIN TABLE B ON A.CITY = B.CITY
AND B.TIME = (SELECT TOP 1 TIME FROM TABLE WHERE CITY = B.CITY AND TIME < A.TIME ORDER BY TIME DESC)