これも以前に投稿した可能性がありますが、これまで答えが見つからなかったので、これで私を助けてください。
私のデータベース構造:
ATT(Activity
表)
- Act_ID(PK)
- Assigned_To_ID (外部キー、参照
Emp_ID
) - Project_ID (FK、参照
Project_ID
) - Product_ID (FK、参照
Product_ID
) - ステータス (可能性があります
New, OnHold, Cancel, Closed
)
Product_Table
- 製品 ID (PK)
- 商品名
プロジェクト_テーブル
- プロジェクト ID (PK)
- プロジェクト名
Employee_Table
- 従業員 ID (PK)
- F_名前。
制約
- 1つのプロジェクトで --> 複数の従業員が働くことができます
- 1 従業員 -- > 複数の活動を割り当てることができます (
Act_ID
) - 任意の時点で
Status
、これらの指定された値のいずれかになります
今私のSQLクエリでやりたいことは負荷チェックです::
アクティビティ ( で表される) は、プロジェクト (内) および特定のステータスのでAct_ID
表される従業員に割り当てられます。SQL クエリから 5 つの値を出力する必要があります。Assigned_To_ID
Project_ID
ATT_Table
- 従業員の名前
- プロジェクト名
- 従業員 (A 内) が割り当てられているアクティビティの合計数。
- Status が New または InProcess である Employee(In A) が割り当てられているアクティビティの数。
- ロード。= C/D * 100 になります (C は D よりも大きな値です。これは明らかです)。
ここで、従業員が E1 がプロジェクト P1、P2 に取り組んでいるとしましょう。したがって、私のテーブル出力は次のようになります::
A B C D E
E1 P1
E1 P2
したがって、ここで C、D、E は、そのプロジェクト (P1 または P2) のアクティビティに対応する値を持ちます。
私はこれまでにこれを試しました::
SELECT
F_Name AS A,
Project_Name AS B,
Count(Act_ID) AS C,
Count(Act_ID) AS D
FROM
Employee_Table, ATT_Table, Project_Table
WHERE
ATT_table.[Assigned_To_ID] = Employee_Table.[Emp_ID]
AND Project_Table.[Project_ID] = ATT_Table.[Project_ID]
AND Count(Act_ID) IN (SELECT Count(Act_ID)
FROM ATT_Table
WHERE ATT_Table.[Status] <> 'Closed'
AND ATT_Table.[Status] <> 'OnHold')
GROUP BY
F_Name, Project_Name;
A、B、C を取得しています。しかし、ステータス チェックのアクティビティを見つけようとすると、WHERE 句にカウントを書き込めないというメッセージが表示されるため、このクエリを実行できません。これについて私を助けてください。ありがとう..