古い Paradox データベースを置き換えるために、Access 2010 データベースを作成しています。クエリに取り掛かったばかりで、私が SQL の初心者であることを隠すことはできません。
私がやろうとしているのは、グラフで使用されるクエリを設定することです。グラフの Y 軸は単純な合格率で、X 軸は特定の日です。グラフは、フォームの読み込み時に作成され、その後、「Between Date() And Date()-30」(30 日、ローリング) の日付範囲で入力された新しいレコードが作成されます。
私が使用しているデータベースでは、1 日に複数の検査が行われ、複数の合格と複数の不合格があります。各検査は個別の記録です。
たとえば、2012 年 11 月 26 日に 7 回の検査が行われました。5 つが合格し、2 つが不合格で、71% ((5/7)*100%) の受け入れでした。「2012 年 11 月 26 日」と「71%」は、グラフ上のデータ ポイントを表します。2012 年 11 月 27 日に 8 件の検査が行われました。4 つが合格し、4 つが不合格で、50% の受け入れでした。等。
以下は、日付範囲「2012 年 11 月 26 日 - 2012 年 11 月 27 日:」のフィールド「日付」および「処分」を含むクエリの例です。
SELECT Inspection.Date, Inspection.Disposition
FROM Inspection
WHERE (((Inspection.Date) Between #11/26/2012# And #11/27/2012#) AND ((Inspection.Disposition)="PASS" Or (Inspection.Disposition)="FAIL"));
Date | Disposition
11/26/2012 | PASS
11/26/2012 | FAIL
11/26/2012 | FAIL
11/26/2012 | PASS
11/26/2012 | PASS
11/26/2012 | PASS
11/26/2012 | PASS
11/27/2012 | PASS
11/27/2012 | PASS
11/27/2012 | FAIL
11/27/2012 | PASS
11/27/2012 | FAIL
11/27/2012 | PASS
11/27/2012 | FAIL
11/27/2012 | FAIL
*注 - 日付フィールドのタイプは「日付」で、性質フィールドのタイプは「テキスト」です。検査が行われない日があり、グラフに表示されない日があります。検査処分は「NA」としてリストすることもできます。これは、グラフ化されない別のタイプの検査を指します。
別のクエリで作成したいレイアウトを次に示します (ここでも、簡潔にするために、範囲は 2 日間のみです)。
Date | # Insp | # Passed | # Failed | % Acceptance
11/26/2012 | 7 | 5 | 2 | 71
11/27/2012 | 8 | 4 | 4 | 50
私が行う必要があると思うのは、レコードの日付自体と残りのクエリ結果の「計算されたフィールド」を結合することです。問題は、日付ごとにレコードを「平坦化」し、検査の数と合格/不合格の数をすべて1つのクエリで管理する方法がわからないことです。これには複数の階層化されたクエリが必要ですか? これらの数値はグラフ形式でのみ使用されるため、クエリをテーブルとして保存しないことを好みます。
PASS "1" と FAIL "0" を割り当てることで "Disposition" フィールドが Textual であることを回避するために、データベースに新しい列を作成することを考えていましたが、これは失敗のようです。これをSQLで機能させる方法が必要です。適用可能な例が見つかりませんでした。
ご協力いただきありがとうございます!ご意見やご提案をお待ちしております。フォーム、クエリ、グラフを含むサンプル データベースも役に立ちます。