Berechne das Gehalt des Tutors basierend auf verschiedenen Sitzungen mit mysql

8

Ich habe in der folgenden Tabelle einen Tutor, der Schüler in kleinen Gruppen unterrichtet. Jeder Schüler hat einen Eintrag in die Datenbank. Ein Schüler kann alleine oder in einer Gruppe sein. Ich möchte das "Gehalt" der Tutoren als solches berechnen: Die Bezahlung basiert auf der Zeit - das bedeutet, dass für jede Sitzung (mit einem oder mehreren Schülern) nur eine Sitzung berechnet wird - unterschiedliche Sitzungen! Die Start- und Endzeiten sind Unix-Zeiten.

%Vor%

Das habe ich ausprobiert: ohne Erfolg - ich kann nicht die richtige Dauer bekommen (Anzahl der Stunden für alle verschiedenen Sitzungen)     

%Vor%

Danke für Ihre Vorschläge / Unterstützung!

BEARBEITEN: Erforderliche Ergebnisse

%Vor%     
dorogz 05.04.2013, 12:45
quelle

1 Antwort

4

Sie könnten wahrscheinlich etwas mit Unterabfragen machen, ich habe mit SQL Fiddle gespielt, wie sieht das für Sie aus. Link zu sql fiddle: Ссылка

%Vor%

Ich konnte nicht wirklich sehen, wo die Anwesenheit gegenwärtig stattfindet, Sie haben nicht angegeben. Die innere Abfrage ist verantwortlich für das Abrufen der Zeitpläne, das Extrahieren eines Startdatums und einer Dauer (in Sekunden).

Die äußere Abfrage verwendet dann diese abgeleiteten Werte, gruppiert sie aber, um die Summen zu erhalten. Sie könnten von hier aus arbeiten, vielleicht möchten Sie nur auswählen, wo Anwesenheit & gt; 0, oder vielleicht möchtest du durch Anwesenheit multiplizieren.

In diesem nächsten Beispiel habe ich das getan, indem ich stattdessen die Dauer in Stunden berechnet habe und die anwendbare Dauer berechnet habe, in der die Sitzungen & lt; 1 Teilnahme zusammen mit dem entsprechenden Kopfgeld unter der Annahme von Kopfgeld == Stunden * Rate: Ссылка

%Vor%

Der entscheidende Punkt hier ist, dass Sie in der Unterabfrage alle Berechnungen pro Zeile durchführen. Die Hauptabfrage ist dann für das Gruppieren der Ergebnisse und das Abrufen der Gesamtsummen zuständig. Die IF-Anweisungen in der äußeren Abfrage könnten beispielsweise einfach in die Unterabfrage verschoben werden. Ich habe sie einfach so aufgenommen, damit Sie sehen können, woher die Werte kommen.

    
Simon at mso.net 05.04.2013, 13:02
quelle

Tags und Links