2012-04-06 4 views
-1

Ich habe eine Tabelle Design wie dieses ...SQL-Abfrage Lastprüfung für einen Mitarbeiter

  • 1 Projekt durchzuführen.
  • 1 Produkt -> Mehrere Umgebungen.
  • 1 Mitarbeiter -> Mehrere Aktivitäten.

Status = sein kann "neu", "inprogress", "on hold", "geschlossen"

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). 

Lastkontrollabfrage

zuerst die Gesamtzahl der Aktivitäten herausfinden jedem Mitarbeiter in einem bestimmten Projekt zugewiesen.

(A). Suchen Sie dann die Anzahl der Aktivitäten für diesen Mitarbeiter in diesem Projekt, wobei Status = Neu oder Inprogress. (B). Teile A/B. Berechnen Sie diesen A/B in Prozent.

So wird meine letzte Abfrage Tabellenausgabe besteht aus

  • Namen des Mitarbeiters
  • Name des Projektes
  • Gesamt zugewiesen act (Zählwert)
  • Act mit Status neu oder in Verfahren (Count)
  • Load (der Prozentwert.)

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

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

(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 ; 
+0

@AmitBhargava Habe es oben bearbeitet ... – user1312006

+0

Graf von A sollte größer sein als Graf von B. Also, willst du A/B oder B/A? – sarwar026

+0

Ja, ich bin Sarwar026 .. ich will A/B –

Antwort

0

Dies ist bis 3. Ergebnis ... nicht für den 4. ein.

select Employee_table.name,Project_table.Project_Name, Count(activity_table.actid) AS CountOfactid 

from Activity table,Employee_Table,Project_Table,Employee_Product_projectMapping_Table 

where Activity_Table.Product_Id=Project_Table.Product_Id 

and 

aage ka syntax yaad nai aa raha hai... 

Employee_Product_projectMapping_Table aur Employee_Table ko combine karke emp name through equating product id... 

für die 4. eine Abfrage verschachtelt ......

werden versuchen, diese Abfrage so schnell wie möglich zu lösen .....: P

409008 ....

+1

Willkommen bei SO, Chandan Ray. Versuchen Sie bitte, Englisch während der gesamten Antwort zu verwenden. –

Verwandte Themen