Ich arbeite mit einer Datenbank für ein Projekt bei der Arbeit, wo ich auf meine Mitarbeiteraktivität schaue. Ich habe die Haupttabelle Angestellte, die die Angestellteninformationen einschließlich die Aufsichtsbehörde Identifikation für jeden Angestellten hat. Ich habe eine andere Tabelle, die die Schichten und die Supervisor-ID hat. Mein Problem tritt auf, wenn ich versuche, die Shift-Informationen zu füllen. Es füllt die Mitarbeiter, ist aber für die Vorgesetzten null, da sie ihre eigenen Vorgesetzten haben. Ich versuche herauszufinden, wie man es programmiert, damit ich zeigen kann, dass die Schichtleiter Teil dieser Schicht sind.Wie kann ich zeigen, dass jemand Teil einer Schicht ist, die er beaufsichtigt?
Die Basisabfrage, die die Shift-Information auffüllt, ist unten.
SELECT
nbr,
Event_Activity,
Minutes,
hours,
Call_for_Service,
incident,
LAST_NAME,
FIRST_NAME,
c.Employee_Nbr,
Supervisor,
sector_shift
FROM
cad c
JOIN
employees e ON e.en = c.employee_nbr
left JOIN
sector s ON s.supervisor_id = e.supervisor
order by sector_shift asc;
Ich bin sehr neu in SQL, also schätze ich jede Hilfe, die ich bekommen kann.
Sector
Field, Type, Null, Key
sector_shift, varchar(12), NO, PRI
supervisor_id, varchar(12), YES, MUL
Employees
Field Type, Null, Key
Position, varchar(255), NO
Job_Code, varchar(5), YES
Last_Name, varchar(25), YES
First_Name, varchar(12), YES
Email_Address, varchar(45), NO, UNI
EN, varchar(12), NO, PRI
Hire_Date, varchar(12), YES
Status, varchar(45), YES
Classification, varchar(12), YES
Supervisor, varchar(12), YES, MUL
CAD
Field, Type, Null, Key
cad_id, int(11), NO, PRI
Nbr, int(11), NO
Event_Activity, varchar(45), YES
Minutes, int(11), NO, MUL
Hours, varchar(25), YES
Call_for_Service, int(11), NO, MUL
Incident, int(11), NO, MUL
Misd., int(11), NO, MUL
Felony, int(11), NO, MUL
Other, int(11), NO, MUL
Report_Issued, int(11), NO, MUL
Employee_Nbr, varchar(12), YES, MUL
Hier ist ein Beispiel für das, was zurückgegeben wird.
Report_Nbr, crime, date, location, LAST_NAME, FIRST_NAME, Employee_Nbr, Supervisor, sector_shift
160002, PROPERTY, 01/01/16, 1516 N. MAIN ST., HOLLIS, NANCY, 80951, 48784, 2
160001, PROPERTY, 01/01/16, 6592 BELLCOURT PKY, WINCE, TIFFANY, 48714, 57080, 3
160003, DRUG - MARIJUANA, 01/01/16, 986 N. FRANKLIN ST., GARCIA, MARK, 72420, 12133, Delta
160005, ACCIDENT, 01/03/16, 3765 CHARLES DR., ALLEN, MICHAEL, 83701, 41647, Alpha
160013, DISPATCH, 01/04/16, 567 COWART LN., TALOBORT, ROGER, 41647, 55054, NULL
160007, PROPERTY, 01/04/16, 6594 HENDERSON AVE., SMITH, FRANK, 62500, 41647, Alpha
Der Nullwert ist ein Supervisor, also zeigt sein Supervisor-Feld auf seinen Supervisor hin. Was ich versuche, ist zu zeigen, dass er in der Schicht ist, die er beaufsichtigt.
Können Sie die Schemastruktur bereitstellen? – berty
@berty Helfen die obigen Änderungen?Employee_nbr in CAD ist ein Fremdschlüssel, der EN in Employees referenziert, und Supervisor in Employees ist ein Fremdschlüssel, der auf Supervisor_id in Sector verweist. – Jon