私は従業員のパフォーマンス指標を毎日記録するプロジェクトに取り組んでいます。Access 2003のJET SQLの列サブクエリで複数の列を返すにはどうすればよいですか?
records
テーブルは、従業員の生産性の1日1列を保持します。各列には、そのカテゴリで完了した項目の数に合計シフト時間と短い日付としての日付が加えられます。
metrics
テーブルは、有効な日付(短い日付)と、期待される時間単位の生産率を記録するrecords
テーブルの生産性列と一致する列を保持します。
employees
テーブルには、従業員名と電話番号表示オプションが含まれています。
従業員レポートを可変期間に設定すると、時間の経過とともにパフォーマンスが表示され、GroupLevel(1).GroupOn
はVBAを使用して設定されます(週、月、四半期などでセクションが作成されます)。
ここでの目標は、レコードテーブルのすべての行(レポートを開くときに後でフィルタリングされるwhereCondition
に基づいてフィルタリングされる)を作成することです。metrics
テーブルの行は、 records.date
と等しいか等しい。これまでのところ、私はmetrics
行のID(または任意の他の単一のフィールド)を取得することができました:私は探しています何
SELECT records.*, employees.first, employees.last, employees.ext,
(
SELECT TOP 1 metrics.id
FROM metrics
WHERE metrics.date<=records.date
ORDER BY metrics.date DESC
) AS MetricsID
FROM employees
INNER JOIN records ON employees.id = records.employee
ORDER BY employees.last;
は、私はすべての列を持っているので、このクエリを記述するための方法であります各行 - GroupFooter2_Format
の間に計算機能を実行すると、日付範囲の各行に対してmetrics
に対してクエリを実行する必要はありません。
records
の列を自動的にmetrics
の対応する列で区切るクエリを書く方法を教えていただけたら、フィールドを直接入力することができます。これらのライン上の
これはうまく見える、私はチャンスがあるとき、今日の午後から試してみる。データはカテゴリ型では保存されません。各列は独自のカテゴリです。 "2.0"の修正を保存する – 4AM
ここで唯一の問題は、Round()関数のパラメータが「指定されたフィールドのレコードです.Productivity 'あなたのSQLステートメントのFROM句に記載されている複数のテーブルを参照する可能性がありますが、関連するメトリックがある限りVBAで計算自体を行うことができ、計算フィールドを削除するとクエリが機能します – 4AM
Hmm、クエリがデータシートビューで機能しても、レポートコントロール内の名前付きフィールドを参照しようとすると、上記と同じエラーが発生するように思われます – 4AM