获取在某个串联期间具有一定价值的记录
Get records that has some value in some tandem period
请考虑这个table:
Id City Year Month F1 F2
-----------------------------------------
1 London 2012 1 10 05
2 London 2012 2 10 05
3 London 2012 3 10 05
4 Paris 2012 1 10 05
5 Paris 2012 2 10 06
6 Tokyo 2013 7 10 05
7 Tokyo 2013 8 10 05
8 Moscow 2013 1 10 05
9 Moscow 2013 3 10 05
我想要F2 = '05'
两个 串联时期(年-月)的记录。例如,对于上述数据,我想要这个结果:
Id City Year Month F1 F2
-----------------------------------------
1 London 2012 1 10 05
2 London 2012 2 10 05
6 Tokyo 2013 7 10 05
以上每一行在下一个时期(年-月)都有一条记录F2 = '05'
。我怎样才能得到这个结果?
谢谢
SELECT a.id, a.city, a.year, a.month, a.f1, a.f2
FROM mytable a, mytable b
WHERE ((b.month = a.month + 1 AND b.year = a.year)
OR (b.year = a.year + 1 AND a.month = 12 AND b.month = 1))
AND a.city = b.city AND b.f2 = '05';
请考虑这个table:
Id City Year Month F1 F2
-----------------------------------------
1 London 2012 1 10 05
2 London 2012 2 10 05
3 London 2012 3 10 05
4 Paris 2012 1 10 05
5 Paris 2012 2 10 06
6 Tokyo 2013 7 10 05
7 Tokyo 2013 8 10 05
8 Moscow 2013 1 10 05
9 Moscow 2013 3 10 05
我想要F2 = '05'
两个 串联时期(年-月)的记录。例如,对于上述数据,我想要这个结果:
Id City Year Month F1 F2
-----------------------------------------
1 London 2012 1 10 05
2 London 2012 2 10 05
6 Tokyo 2013 7 10 05
以上每一行在下一个时期(年-月)都有一条记录F2 = '05'
。我怎样才能得到这个结果?
谢谢
SELECT a.id, a.city, a.year, a.month, a.f1, a.f2
FROM mytable a, mytable b
WHERE ((b.month = a.month + 1 AND b.year = a.year)
OR (b.year = a.year + 1 AND a.month = 12 AND b.month = 1))
AND a.city = b.city AND b.f2 = '05';