1

MS-Access から必要な情報を返している SQL がありますが、「年次発生」と「使用済み」のパラメータ値を入力するよう求められ続けます。

    SELECT SchedulingLog.UserID, SchedulingLog.Category AS Type, 
           Sum(SchedulingLog.Value) AS Used, SchedulingLog.Category, 
           qry_YearsOfService.[Annual Vac Days], [Annual Vac Days]+[Used] AS [Days Left]
    FROM   SchedulingLog INNER JOIN qry_YearsOfService ON 
           SchedulingLog.UserID = qry_YearsOfService.UserID
    GROUP BY SchedulingLog.UserID, SchedulingLog.Category, SchedulingLog.Category, 
             qry_YearsOfService.[Annual Vac Days], [Annual Vac Days]+[Used]
    HAVING (((SchedulingLog.Category) Like "Vac*"));

パラメータを入力するオプションは必要ありません。計算するだけです。私は何が欠けていますか?

勤続年数クエリの SQL は次のとおりです。

    SELECT Roster.UserID, Roster.[WM DOH], Round((Date()-[WM DOH])/365,2) AS YearsOfService, 
Max (tblAccrual.WeeksAccrual) AS [Annual Accrual], Roster.Schedule, 
[Annual Accrual]*[Schedule] AS [Annual Vac Days]
    FROM Roster, tblAccrual
    WHERE ((([tblAccrual]![Years])<Round((Date()-[WM DOH])/365,2)))
    GROUP BY Roster.UserID, Roster.[WM DOH], 
Round((Date()-[WM DOH])/365,2), Roster.Schedule, [Annual Accrual]*[Schedule];
4

3 に答える 3

4

最初のクエリの句に含まれ[Annual Accrual]ているため、求めていると思います。それを取り出してみてください。[Annual Accrual]*[Schedule]group by

2番目のクエリの句で参照した[Used]のと同じ理由で尋ねます。[Annual Vac Days]+[Used]group by

于 2012-12-10T20:05:01.540 に答える
3

2つの異なる問題がある可能性があると思います。

その SQL には「Annual Accrual」という名前のフィールドはありません。おそらく含まれてqry_YearsOfServiceいますが、スペルが間違っています(?)。qry_YearsOfService問題が見つからない場合は、SQL を表示してください。

句は、フィールド式リストで定義されたエイリアスである をGROUP BY参照しています。後でクエリでフィールド エイリアスを使用できるようにすることについては非常に制限的[Used]であるため、db エンジンはそれを のパラメータとして解釈すると思われます。GROUP BYそれを変える必要があると思います。の簡単なサンプルを見せてくださいSchedulingLogqry_YearsOfServiceそれを整理するのに役立ちます。

これらの問題とは別に、フィールド リストにはSchedulingLog.Category2 回含まれています。1 回目はエイリアスとしてType、2 回目はエイリアスなしです。その要点がわかりません。同じフィールドを 2 回含めても問題が発生しない場合がありますがType、予約語であるため可能性があります。それをエイリアスとして保持する場合は、安全のために角括弧で囲んでください。

于 2012-12-10T19:53:08.097 に答える
1

このクエリのどこにも「Annual Accrual」を使用していないため、qry_YearsOfService、またはさらにネストされたクエリから呼び出す必要があります。

"Used" については、Group By の Sum(SchedulingLog.Value) への参照を変更します。

于 2012-12-10T19:52:48.877 に答える