目标: 我正在开发一个允许您保存生日的 Windows 手机应用程序。但是windows phone不允许你保存超过50条提醒,所以我想做的是:
我想获得下一个 50 天生日的列表。但是这个列表必须是不同的,因为例如,如果接下来的 50 个生日都在同一天,我不想为 1 天创建 50 个提醒,我只想为所有这 50 个生日创建 1 个提醒。
这部分查询将创建下一个生日(如果生日已经过去,则创建下一年的生日)
CASE WHEN strftime('%m-%d', Bday) < strftime('%m-%d', 'now')
THEN strftime('2015-%m-%d', Bday)
ELSE strftime('2014-%m-%d', Bday)
END AS Bday
所以这是我的完整查询,它不起作用......:
SELECT id, type, details,
CASE WHEN strftime('%m-%d', Bday) < strftime('%m-%d', 'now')
THEN strftime('2015-%m-%d', Bday)
ELSE strftime('2014-%m-%d', Bday)
END AS Bday
FROM Birthday
WHERE Bday IN
(SELECT DISTINCT
CASE WHEN strftime('%m-%d', Bday) < strftime('%m-%d', 'now')
THEN strftime('2015-%m-%d', Bday)
ELSE strftime('2014-%m-%d', Bday)
END AS nextBday
FROM Birthday
ORDER BY nextBday
LIMIT 50)
ORDER BY Bday
如果我单独运行子查询,它会给我我正在寻找的结果:
2015-01-01
2015-01-02
如果我在没有我得到的地方运行主查询:
id type details Bday
1 11111 admin@sqlfiddle.com 2015-01-01
3 33333 admin@sqlfiddle.com 2015-01-01
2 22222 @sqlfiddle 2015-01-02
4 44444 @sqlfiddle 2015-01-02
但结合起来,我没有得到任何结果......
我做了这个 sqlfiddle:http ://sqlfiddle.com/#!5/58849/6/0
我希望 some1 可以帮助我解决这个问题!提前致谢!