2016-11-19 4 views
0

ich Hilfe brauche eine Zeitplan-Tabelle für Mitarbeiter aus meinem Tisch machen das Hauptproblem ist die Zeile nicht aus dem ersten Reihe auf jeder Spalte beginnen, so hält die Reihe fortsetzen, siehe Bild unten:Wie erstellt man eine Planungstabelle Abfrage von SQL Server 2012?

Table

können wir Beachten Sie, dass die nächste Spalte in der ersten Zeile null ist und in der letzten Zeile fortfährt. Das sind meine Abfrage- und Tabellenbeziehungen, die Sie unten sehen können.

enter image description here

SELECT  (SELECT  PEGAWAI.NAMAPEGAWAI 
         WHERE  (JADWAL.HARIKERJA = 'Tuesday')) AS Selasa, 
         (SELECT  PEGAWAI.NAMAPEGAWAI 
          WHERE  (JADWAL.HARIKERJA = 'Wednesday')) AS Rabu, 
         (SELECT  PEGAWAI.NAMAPEGAWAI 
          WHERE  (JADWAL.HARIKERJA = 'Thursday')) AS Kamis, 
         (SELECT  PEGAWAI.NAMAPEGAWAI 
          WHERE  (JADWAL.HARIKERJA = 'Friday')) AS Jumat, 
         (SELECT  PEGAWAI.NAMAPEGAWAI 
          WHERE  (JADWAL.HARIKERJA = 'Sabtu')) AS Saturday, 
         (SELECT  PEGAWAI.NAMAPEGAWAI 
          WHERE  (JADWAL.HARIKERJA = 'Monday')) AS Minggu FROM   JADWAL INNER JOIN 
        JADWALPEGAWAI ON JADWAL.IDJADWAL = JADWALPEGAWAI.IDJADWAL INNER JOIN 
        PEGAWAI ON JADWALPEGAWAI.IDPEGAWAI = PEGAWAI.IDPEGAWAI WHERE  (JADWAL.SHIFT = 'I') 
+1

Hallo, willkommen in SO. Es würde wirklich Leuten helfen, die Ihre Frage beantworten möchten, wenn Sie die Frage als Text in der Frage stellen, nicht ein Bild. Ebenso die Tabellen. – mendosi

+0

setzen Sie die Abfrage bereits als Text. Danke –

+0

Welche Art von Zeitplan erstellen Sie für Ihre Mitarbeiter als Teil der Abfrage-Ausgabe? Möchten Sie wissen, wer alle Mitarbeiter an einem bestimmten Tag in der Woche gewechselt haben? Versuchen Sie, einen wöchentlichen Dienstplan für Ihre Mitarbeiter als Abfrageausgabe zu erstellen? Wenn ich richtig verstehe, enthält 'PEGAWAI' eine Liste aller Angestellten. 'JADWALPEGAWAI' ist eine Beziehungstabelle. Was enthält die 'JADWAL' Tabelle? – RBT

Antwort

0

Was Ihre Frage zu verursachen scheint nicht zu verhalten, wie Sie erwarten, ist, dass Sie keine GROUP BY Klausel in der Abfrage haben, was bedeutet, dass Sie eine Reihe von Ausgang für jeweils erhalten (in diesem Fall) jede Zeile der Tabelle .

Auf ein Minimum, das Hinzufügen GROUP BY Pegawai.NamaPegawai nach Ihrer WHERE … Klausel soll dieses Problem zu beheben, aber ich denke, dass wir noch besser machen können:

Select Min(iif(j.Harikerja = 'Tuesday', p.NamaPegawai, Null)) As Selasa, 
    Min(iif(j.Harikerja = 'Wednesday', p.NamaPegawai, Null)) As Rabu, 
    … 
    From Jadwal As j 
    Join JadwalPegawai As jp On j.IdJadwal = jp.IdJadwal 
    Join Pegawai As p On jp.IdPegawai = p.IdPegawai 
    Where j.Shift = 'I' 
    Group By p.NamaPegawai; 

Diese logisch äquivalent sein sollte, aber Subqueries nicht verwendet. Hoffe, ich habe keine Rechtschreibfehler gemacht, ich bin nicht zu gut in Bahasa Indonesien ...

+0

Vielen Dank, ich füge eine "Bestellung von p.NamaPegawai"; und jetzt hat es funktioniert wie ich will. –

+0

ich meine "Bestellung von p.NamaPegawai desc;" Vielen Dank. –

Verwandte Themen