T-SQL-Migration des Arbeitszugriffs SQL-Abfrage mit einem Problem beim Schreiben des Fallersatzes für IIF

StackOverflow https://stackoverflow.com/questions/4972952

Frage

Ich habe zwei Tabellen bmreports_fpn_curves und bmreports_boa_curves jeweils bestehend aus einem Namen, dateTime, einer Periode und einem Wert, zum Beispiel: generasacodicetagpre.

mit dem Rundate-Feld inkrementiert um eine Minute (diese C.1440-Datensätze pro Tag) und die Zeiträume 1-48. In bmreports_fpn_curves habe ich einen vollständigen Datensatz für jeden Zeitraum und bmreports_boa_curves enthält die Werte, die diese Basiswerte ersetzen werden.

Es gibt in der Regel doppelte Boa-Werte und eine verschachtelte iIF-Anweisung in der access sQL-Anweisung, die eine Regel enthielt, um einen von der FPN, dem maximalen Boa-Wert oder dem Min-Boa-Wert für jeden Zeitpunkt auszuwählen . Die Regel erklärte:

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.

War es hilfreich?

Lösung

generasacodicetagpre.

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top