1

ユーザー調査で前年と月の情報を比較できるように改良しようとしているクエリがあります。解決方法がわからない番号のグループ化の問題を除いて、クエリは正常に機能しています。このクエリは、ユーザーに開始年と終了年を入力し、次に開始月と終了月を入力するように求めます。2 ~ 9 か月間はすべて正常に動作しますが、1、10、11、または 12 を使用すると、月番号が 1 で始まるすべてのフィールドが表示されます。だから私は今年と昨年の月1と2を要求します 1(ty) 1(ly) 2(ty) 2(ly) 10(ty) 10(ly) 11(ty) 11(ly) 12(ty) 12(月)。要求した特定の数値範囲のみを返すにはどうすればよいですか?

SELECT Month([EventLog]![Date]) & "/" & Year([EventLog]![Date]) AS [Date]
    ,EventLog.Type
    ,Count(EventLog.UserID) AS [Attendance Events]
    ,Year([EventLog]![Date]) AS [Year]
    ,Month([EventLog]![Date]) AS [Month]
FROM EventLog
WHERE (((EventLog.LogType) Like "Eve*"))
GROUP BY Month([EventLog]![Date]) & "/" & Year([EventLog]![Date])
    ,EventLog.Type
    ,Year([EventLog]![Date])
    ,Month([EventLog]![Date])
HAVING (((EventLog.Type) Like "Att*") 
    AND ((Year([EventLog]![Date])) Between [Enter Start Year:] And [Enter End Year:]) 
    AND ((Month([EventLog]![Date])) Between [Enter Start Month:] And [Enter End Month:]))
ORDER BY Month([EventLog]![Date]);
4

2 に答える 2

1

PARAMETERSパラメータが数値であることを db エンジンに通知するために、クエリの先頭に句を含めることができます。次に、クエリでパラメーターを参照するときに、それらを (テキストから) 数値に変換する必要はありません。db エンジンに関する限り、パラメーターは既に数値であるためです。

SQL の冒頭は次のようになります...

PARAMETERS [Enter Start Year:] Short, [Enter End Year:] Short;
SELECT Month([EventLog]![Date]) ...
于 2013-11-05T14:32:04.170 に答える