Zugriff Variable in Select
Hallo Zusammen,
ich habe folgendes Snippet das nicht funktioniert:
Start_timestamp := parseUTCTimeString(string(Leg.Datum), string(Leg.Zeit));
let AnzahlTotal := sum((select Fahrten where Fahrtnummer = Leg.Fahrt and
format('Datum + Uhrzeit', "DDMMYY") = format(Start_timestamp, "DDMMYY")).'Anzahl');
wenn ich Start_timestamp den statischen Wert "110923" zuweise, funktioniert die Select wie gewünscht:
Start_timestamp := "110923";
let AnzahlTotal := sum((select Fahrten where Fahrtnummer = Leg.Fahrt and
format('Datum + Uhrzeit', "DDMMYY") = Start_timestamp).'Anzahl');
Wenn ich den Inhalt von format(Start_timestamp, "DDMMYY") in einem Alert ausgebe, bekomme ich genau die gewünschten "110923":
Start_timestamp := parseUTCTimeString(string(Leg.Datum), string(Leg.Zeit));
alert(format(Start_timestamp, "DDMMYY"));
Zusammengesetzt funktioniert der Vergleich aber nicht. Ich habe hier extra mit format() gearbeitet, um strings zu vergleichen und eventuelle versteckte Datumslogiken auszuschliessen.
Hat jemand eine Idee an was das liegt, respektive wie das gehen könnte?
4 Antworten
-
Hallo Jürgen, was ist denn "parseUTCTimeString"? Als Ninox-Funktion ist mir das gänzlich unbekannt. Muss natürlich nix heißen, aber falls es sich um eine benutzerdefinierte Funktion handeln sollte, wäre deren Code von nicht unerheblicher Bedeutung für die Ursachenfindung.
Davon abgesehen: "Start_timestamp" ist obigem Code nach offenbar ein Datenfeld. Dann kann es aber nicht ohne weiteres im"select" als Vergleichswert angegeben werden, da der Fokus auf der anderen Tabelle liegt. Man sollte den Rückgabewert von parseUTCTimeString() in eine Variable schreiben und diese im "select" adressieren.
Last but not least könnte man mit einem dialog() nach dem Aufruf der Funktion prüfen, welchen Wert sie überhaupt zurück gibt.
-
Manchmal stimmen die Datentypen nicht überein, obwohl sie gleich aussehen.
Ich benutze viel debugValueInfo() in Verbindung mit dialog(), da dort die Ausgabefenster eher angezeigt werden als mit alert().
Es hilft manchmal noch eine Dateityp-Angleichung vorzunehmen, was ich in deinem Script mit text() eingefügt habe.Start_timestamp := parseUTCTimeString(string(Leg.Datum), string(Leg.Zeit)); let AnzahlTotal := sum((select Fahrten where Fahrtnummer = Leg.Fahrt and text(format('Datum + Uhrzeit', "DDMMYY")) = text(format(Start_timestamp, "DDMMYY"))).'Anzahl');
Ansonsten wüsste ich aufgrund deiner Beschreibung nicht, was sonst zu dem Problem führt.
Content aside
- vor 1 JahrZuletzt aktiv
- 4Antworten
- 77Ansichten
-
3
Folge bereits