SQL-Neuling hier. Ich versuche eine Kalkulationsabfrage zu erstellen, die Mitarbeiter-Zeitkarteninformationen ausgibt und die Kosten basierend auf einer effektiven Mitarbeiterkostenkalkulationsrate berechnet.
Meine Frage ist ähnlich wie hier gefragt: Retro-aktiv effektives Datum ändert sich mit überlappenden Daten , aber ich beschäftige mich nicht mit Retro-Aktivitäten oder überlappenden Datumsbereichen.
Tabellenbeispiele (Nullwerte in der Tariftabelle zeigen die aktuelle Rate an):
%Vor%Die Abfrage (gibt Duplikate zurück, die durch mehrere Rateneinträge (offensichtlich) verursacht wurden):
%Vor%Gewünschte Ausgabe:
%Vor% Ich bin in Kreisen mit dem Operator Between
in einer Unterabfrage herumgelaufen, um die korrekte Rate basierend auf dem Ladedatum zu isolieren, hatte aber kein Glück.
Ich schätze jede Hilfe!
Sie haben den DBMS-Typ nicht angegeben, auf den sich die folgende Antwort für SQL-Server bezieht. Ich bin mir sicher, dass es andere Möglichkeiten gibt, dies zu tun, aber auf diese Weise wird das null
Rate_Exp
Datum durch das aktuelle Datum ersetzt.
ODER verwenden Sie die CASE
-Anweisung in Ihrer WHERE
-Klausel:
Tags und Links sql sql-server sql-server-2008