首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL查询与内部选择

SQL查询与内部选择
EN

Stack Overflow用户
提问于 2016-09-30 12:39:45
回答 2查看 66关注 0票数 1

我有3个表,并有显示新表的查询,其中每一行都填充了以下内容:

代码语言:javascript
运行
复制
SELECT rov.*
FROM   report_or_vals  rov
WHERE  rov.or_group_indice_id = 1
AND    report_date BETWEEN ? AND ? 

因此,第二行将是:

代码语言:javascript
运行
复制
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函数。但我希望这其实是一项简单的工作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-30 14:07:04

我理解的问题是:我们如何显示每日价值的列表,以及每一天的价值与前一天的价值之间的差异

我使用一个自连接来完成这个任务。

代码语言:javascript
运行
复制
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 ?
*/

这是你想要的吗?

票数 2
EN

Stack Overflow用户

发布于 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 ?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39791745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档