MySQL: Wöchentliche Homeoffice/Büro Belegung

dennis-sauer

Erfahrenes Mitglied
Hallo zusammen,

ich bastel jetzt seit 3 Tagen rum aber komm einfach nicht auf die Lösung.

Was ich möchte, soll folgendermaßen aussehen:

Name09.11.202010.11.202011.11.202012.11.202013.11.2020
Peter MüllerHomeofficeBüroHomeofficeBüroHomeoffice
Sarah SchmidtBüroHomeofficeBüroHomeofficeBüro

Was ich bisher habe ist folgendes:

Code:
$sqlSelect ="
SELECT *
FROM bm_absence
WHERE day between '$monday' AND '$friday'
ORDER BY
uid ASC, day ASC
";

$result = mysqli_query($connect, $sqlSelect);

while($row = mysqli_fetch_array($result)){
    echo $row['uid']. " - ". $row['day'];
    echo "<br />";
   
}

Im Endeffekt wars das auch. :-(

Ich bekomme es nicht hin, das entsprechend der o.g. Tabelle auszugeben, also das es so sortiert ist, wie es soll. Aktuell sieht es nur so aus:

Code:
1 - 2020-11-09
1 - 2020-11-10
1 - 2020-11-11
1 - 2020-11-12
1 - 2020-11-13
2 - 2020-11-09
2 - 2020-11-10
3 - 2020-11-13

Ich habe die Einträge in der Datenbank bewusst so eingegeben, es könnte ja auch sein, das jemand einfach für ein paar Tage nichts eingegeben hat.

Über Tipps würd ich mich freuen.

Danke euch

Dennis
 
Zuletzt bearbeitet:
Da vermisse ich noch etwas:
  • Irgend wo muss ja der Name her kommen
  • und irgend wo muss noch die Info her kommen, ob der Benutzer im Büro oder im Homeoffice ist.
 
Sieht nach dynamic SQL und Pivot (bzw. Transponieren) aus.
Steht ja nicht da dass die Ausgabe dann in Excel sein muss oder soll :)

Was fehlt sind eben die Daten wie über Deinem Post angesprochen wurden durch den TE fehlen :)

Mit seiner SQL liest er nur das Datum aus, die anderen Felder fehlen in der SQL Tabelle völlig.
Bzw. ist nicht ersichtlich wo die anderen Feld laut Tabelle sind, also gibt es eine weitere Tabelle etc... :)
 
Ich meinte das eher in dem Sinne:
1) Dynamic SQL: Ermitteln der Woche um dann den Montag bzw. Freitag zu ermitteln
2) Transponieren: Er hat die Datumseinträge in einer Spalte (und dort wohl auch, ob jemand im Büro bzw. HO ist), und er will aus Spalten Zeilen machen --> Transponieren

Was ich mir als Lösung vorstellen könnte: SP mit einem (bzw. zwei) IN-Parametern --> Woche bzw. gleich Datum für Montag und Freitag, welche eine View erzeugt (DROP VIEW IF EXIST, dann CREATE VIEW), und im zweiten Schritt ruft er die View auf.
 
Zurück