我需要在MS Access中查询列的值之差为8,并且只有当它大于8时才能查询。
因此,如果我有一列数字1-10,我想查询所有值与8的差值之和。因此,以下列的查询结果将是3。(9-8)+(10-8)
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]) ; 谢谢,
发布于 2013-02-07 04:18:28
这样如何:
SELECT Sum([Value]-8) As SumOfVal
FROM table
WHERE [Value]>8编辑重新完成对原始问题的更改。
还不清楚你想要什么
SELECT Sum(([time1]-8)+([time2]-8) ...
WHERE [time1]>8 And Time2>8 ...Time1>8将排除空值,但如果您不是这样做的,则需要考虑:
Nz([time1],0) + ...编辑重新注释
类似于:
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 bAs b是一个别名:Access SQL
UNION / UNION ALL:View a unified result from multiple queries with a union query
https://stackoverflow.com/questions/14737946
复制相似问题