T-SQL-Migration des Arbeitszugriffs SQL-Abfrage mit einem Problem beim Schreiben des Fallersatzes für IIF
Frage
Ich habe zwei Tabellen
mit dem Rundate-Feld inkrementiert um eine Minute (diese C.1440-Datensätze pro Tag) und die Zeiträume 1-48. In
Es gibt in der Regel doppelte Boa-Werte und eine verschachtelte iIF-Anweisung in der
1) Wenn es keinen Boa-Wert gibt, verwenden Sie den FPN-Wert für
2) Wenn ein Boa-Wert vorliegt und es weniger als der FPN ist, finden Sie den Min-Boa-Wert
3) Wenn ein Boa-Wert vorhanden ist und größer als der FPN ist, finden Sie den maximalen Boa-Wert
Der Access SQL-Abfrage funktioniert perfekt und ist wie folgt: generasacodicetagpre.
Ich habe den Großteil der Abfrage in T-SQL erneut geschrieben (Abfragen derselben SQL Server-Datenquelle) und den linken Join, der Gruppe von und mit Elementen, die alle funktionieren, aber ich werde beim Ersetzen auf dem Gehäuse festgefahren Für den IFF und würde wirklich eine Hand schätzen, wenn einige ein paar Augenblicke schonen.
Die SQL-Abfrage, da es derzeit steht: generasacodicetagpre.
Lösung
Andere Tipps
Sie sind wahrscheinlich besser mit einem CTE, um alle aggregierten Berechnungen durchzuführen, und treiben Sie Ihre CASE-Anweisung von der generasacodicetagpre.
Für DBs, die keine CTES unterstützen, können Sie auch eine SELECT-Innere von der von (Inline-Ansicht) verwenden.Übrigens unterstützt dies. generasacodicetagpre.
Haben Sie eine mehr wörtliche Übersetzung des IIF in den Fall ausprobiert?Zum Beispiel sieht Ihre IIF-Kette so etwas aus: generasacodicetagpre.
Also wäre eine wörtliche Übersetzung so etwas: generasacodicetagpre.
Ich habe keinen Zugriff auf Ihr gesamtes Schema oder Ihre Daten, damit ich die Übersetzung nicht testen kann, aber ich glaube, dass es syntaktisch korrekt ist.