調査の結果を含むデータのMSAccessのテーブルがあり、リスクIDのルックアップテーブルと、調査結果に基づくリスクの種類の説明があります。
これまでに試したのは、調査テーブルから個別のエントリを選択し、リスクコードのクエリに新しいフィールドを入力することです。リスクコードの数は、決定した基準によって異なり、リスクの検索に使用します。
調査用の私のテーブルは次のようになります。
Name | Location | Days spent eating IceCream | Icecream eating location
John Smith | London | 30 | Hull
私のリスクIDテーブルは次のようになります。
RiskID | RiskBool | Description
1 | Yes | At risk - This person eats too much icecream
2 | Yes | Risk - This person does not eat enough icecream
3 | No | Sensible amount of icecream eaten
4 | Yes | It is illegal to eat icecream in Hull
そして、私のクエリは、アクセスデザインビューで(何か)このように見えます
Name | Location | Risk Code | RiskID | Description
SQLを記述してリスクコードを1、2、3、4(実際の場合は最大15)に変更し、リスクIDとコードが一致する場合の人物と説明のみを表示するように指示します。私はまだこれを書いていません。
これを達成するための最良の方法は何ですか?
2つの可能性があります。
- リスクIDごとに1つずつ15のクエリを設定し、それらに説明を追加してから、それらの15セットの結果を結合します。これは私が行う方法を知っていることですが、かなり混乱してしまう可能性があります。
- ステートメントを使用して「チェック」を
if
設定し、次にそのエントリのリスクコードフィールドを設定する方法を設定します。
私の現在のSQLはこのように見えますが、まだチェックを行っていません。ステートメントが非常に長くなるかどうか心配しています。
SELECT DISTINCT
[At Risk Employee List].Employee AS Name,
[At Risk Employee List].[DaysIceCream] AS [Days spent eating Icecream],
[At Risk Employee List].[Base Location],
[RiskCode] AS [Risk Code], <----is this where the check would need to go?
RiskDescLookup.RiskBoolean,
RiskDescLookup.RiskExplanation
FROM RiskDescLookup,
[Survey Raw Data]
INNER JOIN
[At Risk Employee List]
ON
[Survey Raw Data].ResID = [At Risk Employee List].[Staff ID]
GROUP BY
[At Risk Employee List].Employee,
[At Risk Employee List].[DaysIceCream],
[At Risk Employee List].[Base Location],
RiskDescLookup.RiskID,
[RiskCode] AS [Risk Code], <----is this where the check would need to go?
RiskDescLookup.RiskBoolean,
RiskDescLookup.RiskExplanation
ステートメントによって行われるチェックはif
非常に長く、(擬似コードで)次のようになります。
if ( [At Risk Employee List].[Base Location] = Hull, then [RiskCode]=4...., else if (DaysIceCream>42) then....
これを行うための最良の方法ですか?リスクコードも必要ですか?
この「チェック」を可能な限り最良の方法で作成する方法について、私は少し迷っています。