我正在使用ajax调用远程运行mySQL查询并将数据作为数组返回的移动应用程序。我想使用SQLite 3和iPad在本地运行查询。以下是mySQL查询。我遇到麻烦查询SQLite中`使用SUM和GROUP BY将mySQL查询转换为SQLite
工作这是我的工作MySQL查询
SELECT
expense_date.expenseDate,
expenses.cost,
SUM(expenses.cost) as total,
expenses.name,
category.category
FROM expenses
INNER JOIN category ON expenses.catID = category.catID
INNER JOIN expense_date ON expenses.dateID = expense_date.dateID
WHERE expense_date.expenseDate BETWEEN '#from#' AND '#tu#'
AND expenses.catID != '1F27C7A1-3E16-5087-A313-A47D286A77A5'
AND expenses.catID != 'DF64C183-5056-A816-1ACA94F902242B61'
AND expenses.userID = '#userID#'
AND expenses.accountID = '#accountID#'
Group By expense_date.expenseDate
修订版的MySQL声明。此语句工作在MySQL,但不是在SQLite的3
SELECT
expense_date.expenseDate,
SUM(expenses.cost) as total
FROM expenses
INNER JOIN expense_date ON expenses.dateID = expense_date.dateID
WHERE expense_date.expenseDate
BETWEEN '2014-08-01' AND '2014-08-31'
AND expenses.catID != '1F27C7A1-3E16-5087-A313-A47D286A77A5'
AND expenses.catID != 'DF64C183-5056-A816-1ACA94F902242B61'
AND expenses.userID = 'C4C73329-5056-A816-1AB4B9FAE08FDB77'
AND expenses.accountID = '46298719-C78A-4CCE-8ADD-A3FD948DF93E'
Group By expense_date.expenseDate
这是查询的结果。 2014-08-21有两个值:2000.00和372.00,但它们被叠加在一起并作为2014-08-21的单个值返回。
2014-08-01 32.00
2014-08-16 15.00
2014-08-19 513.55
2014-08-21 2372.00
2014-08-22 525.00
2014-08-25 34.55
2014-08-27 52.78
2014-08-31 30.00
我需要将MySQL查询代码转换为SQLite。我做了一个谷歌搜索,发现了一些关于使用CASE的信息,但我不知道如何构造sql语句。您的帮助表示赞赏
对不起,但'它不工作'也不适用于我们。请提供明确的错误消息或明确的结果说明。 – 2014-08-30 14:24:09
此查询没有意义开始。对于同一个费用日期中具有多行的组,应该输出哪个'cost' /'name' /'category'值? – 2014-08-30 14:36:32
#php,#CL mySQL查询适用于我的数据,但是我已经拿出了我真的不需要检索的代码。我发布了新的mySQL。 – west1024 2014-08-30 21:09:32