Abfrage ob Spalte vorhanden

Horst

Benutzer
Beiträge
11
Hallo!
Wäre toll wenn ihr euch einmal die Datei (im Anhang) angucken würdet.
Im speziellen Zeile 232:
where av.ProcessingIdent = 1008

Nun ist es vorkommen, das der Wert mit ProcessingIdent 1008 gar nicht in der DB vorhanden ist.
Wenn das der Fall ist bekomme ich eine leere Ergebnismenge zurück. Auch ein left join hat nicht gebracht!
Wie muss ich das Statement umschreiben damit ich trotzdem eine gefüllte Ergebnismeng zurückbekomme?

Vielen Dank
 

Anhänge

  • STPREP_ReportGetMotorStationWorkFollows.zip
    2,1 KB · Aufrufe: 6
Werbung:
Das ist ja eine recht mächtige Abfrage die ich jetzt weder verstehe noch in ihre Bestandteile zerlegen möchte.

av.ProcessingIdent = 1008 ist hier die Bedingung. Wenn du nur Ergebnisse möchtest wo av.ProcessingIdent = 1008 ist, ist eine leere Ergebnismenge natürlich richitg, ich denke das leuchtet ein.

Wenn ich jetzt raten soll würde ich sagen du suchst einen LEFT JOIN statt einem INNER JOIN.
Code:
left join MPC_ActualValue av on rmav.ID_ActualValue = av.ID_ActualValue
Dann würde av nur dort gejoint wo ProcIdent = 1008 oder eben gar nicht gejoint.
 
>> left join MPC_ActualValue av on rmav.ID_ActualValue = av.ID_ActualValue

hatte ich schon ausprobiert, hat leider keinen Erfolg gebracht andere Idee?
 
Dazu müsste ich die Abfrage dann echt zerlegen und Stückweise testen. Ich verstehe diese Einschränkung gar nicht vieleicht gibt es ja gar keine entsprechenden Daten.
 
left join MPC_ActualValue av on rmav.ID_ActualValue = av.ID_ActualValue
where av.ProcessingIdent = 1008

es gibt keine Datensatz für den das Zutrifft
Deswegen hatte ich ja gedacht mit einem left join komme ich weiter. Aber ist nicht.
Wenn ich das where av.ProcessingIdent = 1008 herausnehme bekomme ich die Daten die Suche des entsprechenden Ident (vgl. Query )angezeigt angezeigt. Aber wenn ich nach anderen Idents (vgl Query) suche bekomme ich die Zeilen doppelt angezeigt. Hier hilft dann leider auch kein Distinct.

Hier noch einmal einen Auszug aus der Tabelle MPC_RefMotorActualValue (vgl. Anhang)
Die ID_ActualValue für das ProcessingIdent = 1008 ist gleich 8. Aber nicht vorhanden warum bekomme ich trotz left join nicht angezeigt?
 

Anhänge

  • MPC_RefMotorActualValue.PNG
    MPC_RefMotorActualValue.PNG
    26,3 KB · Aufrufe: 0
Der Fehler ist vorher schon passiert. Es sind keine entsprechende Datensätze angelegt worden. Weder rechts noch links . Somit hätte ich nie eine Erbeisliste bekommen
 
Werbung:
Zurück
Oben