SQL-Abfrage, um die Lastprüfung für einen Mitarbeiter durchzuführen

Ich habe ein Tischdesign wie dieses ...

1 Projekt -> Mehrere Produkte.1 Produkt -> Mehrfachumgebung.1 Mitarbeiter -> Mehrere Aktivitäten.

Status kann sein = "neu", "in Bearbeitung", "angehalten", "geschlossen"

<code>    Activity table- ActID(PK), assignedtoID(FK), Env_ID(FK), Product_ID(FK), project_ID(FK), Status. 
    Product_table - Product_ID(PK), Product_name
    Project_Table- Project_ID(PK), Project_Name. 
    Environment_Table- Env_ID(PK), Env_Name. 
    Employee_Table- Employee_ID(PK), Name.
    Employee_Product_projectMapping_Table -Emp_ID(FK), Project_ID(FK), Product_ID(FK).
    Product_EnvMapping_Table - Product_ID(FK), Env_ID(FK). 
</code>

Prüfabfrage laden

Ermitteln Sie zunächst die Gesamtanzahl der Aktivitäten, die jedem Mitarbeiter in einem bestimmten Projekt zugewiesen wurden.

(EIN). Suchen Sie dann die Anzahl der Aktivitäten für diesen Mitarbeiter in diesem Projekt, wobei Status = neu oder in Bearbeitung ist. (B). A / B teilen. Berechnen Sie diesen A / B in Prozent.

Meine endgültige Abfragetabellenausgabe besteht also aus

Name des MitarbeitersName des Projektsinsgesamt zugewiesener Akt (Zählwert)Akt mit Status neu oder in Bearbeitung (Count)Laden (der Prozentwert.)

Kann mir jemand bei der Abfrage helfen und erklären, wie ich dieses Ergebnis erzielen kann? Vielen Dank.

Bisher habe ich so viel ausprobiert ... um die Ergebnisse von A und B zu erhalten, aber jetzt muss ich diese beiden kombinieren ...

<code>(A).

SELECT activity_table.assignid, activity_table.projid, Count(activity_table.actid) AS CountOfactid
FROM activity_table
GROUP BY activity_table.assignid, activity_table.projid;

(B).

SELECT activity_table.assignid, activity_table.projid, Count(activity_table.actid) AS CountOfactid
FROM activity_table where status in ('new','inprogress')
GROUP BY activity_table.assignid, activity_table.projid ;
</code>

Antworten auf die Frage(1)

Ihre Antwort auf die Frage