我有3个表,并有显示新表的查询,其中每一行都填充了以下内容:
SELECT rov.*
FROM report_or_vals rov
WHERE rov.or_group_indice_id = 1
AND report_date BETWEEN ? AND ?
因此,第二行将是:
SELECT rov.*
FROM report_or_vals rov
WHERE rov.or_group_indice_id = 2
AND report_date BETWEEN ? AND ?
问题制造是我把我的NSDate
对象(iOS,object对象表示保持日期)的位置。
我的问题是,如何修改此查询以显示其他列?哪个值应该等于:(上面语句中的行值)-(行值语句后面的行值语句),其中的语句后置语句是similiar语句,但是日期减少了一天。
因此,如果今天的行值等于10,而前一天的值等于7,我希望我的语句包含类似于:column_today_value (等于10)、column_difference_value (等于3 (10-7))的内容。
如何用SQL语言实现这一点?对不起,我是一个iOS开发人员。也不太熟悉SQL函数。但我希望这其实是一项简单的工作。
发布于 2016-09-30 14:07:04
我理解的问题是:我们如何显示每日价值的列表,以及每一天的价值与前一天的价值之间的差异
我使用一个自连接来完成这个任务。
SELECT [TODY].value AS [VALUE]
, [YEST].value AS [PREV_VALUE]
, [TODY].value - [YEST].value AS [DIFFERENCE]
, '[TODY].value - [YEST].value = '
+ CAST([TODY].value - [YEST].value
AS varchar
) AS [WHATS_HAPPENING]
, [YEST].*
FROM report_or_vals AS [YEST]
INNER JOIN report_or_vals AS [TODY]
ON [YEST].date = DATE([TODY].DATE,'-1 day')
/* IF YOU COMMENT THE WHERE CLAUSE YOU WILL SEE VALUES FOR ALL THE DAYS
WHERE [TODY].or_group_indice_id = 2
AND report_date BETWEEN ? AND ?
*/
这是你想要的吗?
发布于 2016-09-30 12:46:30
我希望下面的解决方案是为您工作。
SELECT rov.* , rov.vals - (select row.vals from report_or_vals where report_or_vals.date = (NSDate - 1)) FROM report_or_vals rov WHERE rov.or_group_indice_id = 2 AND report_date BETWEEN ? AND ?
https://stackoverflow.com/questions/39791745
复制相似问题