首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >差值之和

差值之和
EN

Stack Overflow用户
提问于 2013-02-07 04:15:40
回答 1查看 185关注 0票数 1

我需要在MS Access中查询列的值之差为8,并且只有当它大于8时才能查询。

因此,如果我有一列数字1-10,我想查询所有值与8的差值之和。因此,以下列的查询结果将是3。(9-8)+(10-8)

代码语言:javascript
运行
复制
    SELECT Sum(([time1]-8)+([time2]-8)+([time3]-8)+([time4]-8)+([time5]-8)+([time6]-8)+([time7]-8)+([time8]-8)+([time9]-8)+([time10]-8)+([time11]-8)+([time12]-8)+([time13]-8)+([time14]-8)+([time15]-8)+([time16]-8)+([time17]-8)+([time18]-8)+([time19]-8)+([time20]-8)+([time21]-8)+([time22]-8)) AS Total
FROM tblTimeTracking
WHERE (((Month(([Day])))=Month(Now()))) AND ([time1]>8 AND[time2]>8 AND[time3]>8 AND[time4]>8 AND[time5]>8 AND[time6]>8 AND[time7]>8 AND[time8]>8 AND[time9]>8 AND[time10]>8 AND[time11]>8 AND[time12]>8 AND[time13]>8 AND[time14]>8 AND[time15]>8 AND[time16]>8 AND[time17]>8 AND[time18]>8 AND[time19]>8 AND[time20]>8 AND[time21]>8 AND[time22])  ;   

谢谢,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-07 04:18:28

这样如何:

代码语言:javascript
运行
复制
SELECT Sum([Value]-8) As SumOfVal
FROM table
WHERE [Value]>8

编辑重新完成对原始问题的更改。

还不清楚你想要什么

代码语言:javascript
运行
复制
 SELECT Sum(([time1]-8)+([time2]-8) ...
 WHERE [time1]>8 And Time2>8 ...

Time1>8将排除空值,但如果您不是这样做的,则需要考虑:

代码语言:javascript
运行
复制
 Nz([time1],0) + ...

编辑重新注释

类似于:

代码语言:javascript
运行
复制
 SELECT Sum(times) FROM
 (SELECT IIf(Time1>8,Time1-8,Time1) As times FROM Table
 UNION ALL
 SELECT IIf(Time2>8,Time2-8,Time2)  As times FROM Table) As b

As b是一个别名:Access SQL

UNION / UNION ALL:View a unified result from multiple queries with a union query

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

https://stackoverflow.com/questions/14737946

复制
相关文章

相似问题

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