我的应用程序有2个实体(或表)。iOS - CoreData或Sqlite套件我的应用程序?
Category (id, name)
Item (id, name, amount, date, categoryId)
我需要的是
SELECT categoryId, Category.name,
SUM(IF(MONTH(FROM_UNIXTIME(date)) = 1, amount, 0)) AS jan
SUM(IF(MONTH(FROM_UNIXTIME(date)) = 2, amount, 0)) AS feb
SUM(IF(MONTH(FROM_UNIXTIME(date)) = 3, amount, 0)) AS mar
SUM(IF(MONTH(FROM_UNIXTIME(date)) = 4, amount, 0)) AS apr
SUM(IF(MONTH(FROM_UNIXTIME(date)) = 5, amount, 0)) AS may
SUM(IF(MONTH(FROM_UNIXTIME(date)) = 6, amount, 0)) AS jun
SUM(IF(MONTH(FROM_UNIXTIME(date)) = 7, amount, 0)) AS jul
SUM(IF(MONTH(FROM_UNIXTIME(date)) = 8, amount, 0)) AS aug
SUM(IF(MONTH(FROM_UNIXTIME(date)) = 9, amount, 0)) AS sep
SUM(IF(MONTH(FROM_UNIXTIME(date)) = 10, amount, 0)) AS oct
SUM(IF(MONTH(FROM_UNIXTIME(date)) = 11, amount, 0)) AS nov
SUM(IF(MONTH(FROM_UNIXTIME(date)) = 12, amount, 0)) AS dec
FROM Item INNER JOIN Category ON Item.categoryId = Category.id
WHERE YEAR(FROM_UNIXTIME(date)) = 2012
GROUP BY categoryId
注:以上查询是写在MySQL的方式,我完全陌生的CoreData & sqlite的
在这种情况下,CoreData VS Sqlite,whic h 1更适合?
如何将上述sql转换为CoreData或Sqlite形式?
谢谢。
编辑
我可以混用吗?对于CRUD
正在使用核心数据,但对于这样一个复杂的查询使用Sqlite(FMDB库)?
默认情况下,CoreData创建了一个扩展名为.sqlite的文件。但是,在FMDB github instruction这里是扩展名.db。有关系吗?
数据库路径[FMDatabase databaseWithPath:@"/tmp/tmp.db"];
是否与CoreData相同?
请参阅[CASE](http://www.sqlite.org/lang_expr.html#case)和[strftime](http://www.sqlite.org/lang_datefunc.html)的文档。 –
[这里](http://rdcworld-iphone.blogspot.in/2013/04/simple-and-basic-coredata-in-iphone.html)是熟悉Core Data的简单教程,可以帮助你 – swiftBoy
@RDC感谢您的评论,但我试图询问有关CoreData中的复杂查询,可能涉及2个或更多的表加入 –