2017-04-26 6 views
0

Nach nicht 3 Tisch beitreten:SQL-Syntax (möglicherweise die SQL-lite in Beziehung gesetzt werden)

  1. auf der Gerätenummer - immer eine Zahl, so schließt sich nur auf zwei Säulen

  2. Auf der Slot-Nummer - 1. Fall "Logs.Slot" ist Nummer, 2. "Slotlist2" ist eine durch Komma getrennte Liste.

  3. Auf dem Slot - Def_Instances.slot ist wie Logs.Slot (dh es ist eine Nummer und ist realted zu Logs.Slot) aber hat den Wert von Offset +1 wurde davon subtrahiert.

Jetzt möchte ich für Syntax richtig machen Sie bei der Verwendung von SQL lite

select Logs.*, Def_Instances.*, (Def_Instances.slot + Def_Instances.Offset + 1) as A from Def_Instances 
inner join Logs ON Logs.Column1 = Def_Instances.DeviceNumber 
and (', ' || RTRIM(Def_Instances.slotlist2) || ',') LIKE '%, '|| Logs.Slot ||',%' 
and (', ' || RTRIM(Def_Instances.A) || ',') LIKE '%, '|| Logs.Slot ||',%' 

Gut, dass man sagt mir htere ist ein Fehler.

Als ich herumspielte. Es erkennt entweder + Zeichen oder eine Spalte A nicht oder, soweit ich mich erinnern kann, gab es einen weiteren Fehler, den ich früher erhalten habe.

Vielen Dank im Voraus

Antwort

0

Sie können nicht Spalte alias aus der select-Klausel in der where Klausel wiederverwenden. Vergessen Sie nicht, SQL entfernt zuerst die Zeilen (führt die where -Klausel aus), bevor die Ausgabe projiziert wird (indem die select-Klausel ausgeführt wird). Geben Sie den Ausdruck in die where Klausel ein. Und machen Sie wahrscheinlich eine Typumwandlung, da es an einem Punkt numerisch zu sein scheint, dann fangen Sie an, es wie eine Schnur zu behandeln.

Verwandte Themen