1

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])  ;   

ありがとう、

4

1 に答える 1

2

どうですか:

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はnullを除外しますが、それが実行していない場合は、次のことを考慮する必要があります。

 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 b

As bエイリアスです:SQLにアクセスします

UNION / UNION ALL:ユニオンクエリを使用した複数のクエリからの統一された結果を表示します

于 2013-02-06T20:18:28.087 に答える