2

アクセスデータベースに対して以下のqryを実行しようとすると、エラーが発生します。必要なパラメーターに値が指定されていませんか?

SELECT        ID, DateColumn, Less90, Between90180, Between180365, GreaterThan365, SUM(Less90) + SUM(Between90180) + SUM(Between180365) + SUM(GreaterThan365) 
                     AS Total, SUM(Between180365) / Total AS Expr1,
                         (SELECT        SUM(Between180365) / (SUM(Less90) + SUM(Between90180) + SUM(Between180365) + SUM(GreaterThan365))
                           FROM            tblHandpieceFaliuresAge T2
                           WHERE        T2.ID <= tblHandpieceFaliuresAge.ID) AS RunningSum
FROM            tblHandpieceFaliuresAge
GROUP BY ID, DateColumn, Less90, Between90180, Between180365, GreaterThan365
4

2 に答える 2

7

列の1つを間違って入力しましたが、Accessはパラメーターを渡そうとしていると見なします。

フィールド名をもう一度確認し、すべて正しく入力されていることを確認してください。

問題はこれかもしれないと私は信じています:

SUM(Less90) + SUM(Between90180) + SUM(Between180365) + SUM(GreaterThan365) 
                 AS Total

そして、後でここでそれを参照しTotalます:

SUM(Between180365) / Total

Accessはエイリアスを取得してクエリで再利用できません。これが必要です:

SUM(Between180365) / 
    (SUM(Less90) + SUM(Between90180) + SUM(Between180365) + SUM(GreaterThan365))

また、ゼロで除算しないように、分母を処理するようにしてください。

于 2012-09-05T14:05:55.283 に答える
3

これの通常の原因は、フィールド名の1つをスペルミスしているため、Accessはそれがパラメーター(指定されていない)であると見なしていることです。

これを修正する方法は2つあります。

  • eveyフィールド名を手動でチェックして、スペルが正しいことを確認するか、
  • 問題がなくなるまで、クエリからフィールドの削除を開始します。削除された最後のフィールドが原因です。
于 2012-09-05T14:06:20.930 に答える