Neu Prüfung ob Wert vorhanden ist einbauen

Andreas Grambow

Sehr aktives Mitglied
Hallo zusammen,

ich möchte folgenden Code so umbauen, dass er wenn kPlattform = 10001 nicht vorhanden ist, dass er dann kPlattform = 1

Danke für Eure Unterstützung

Code:
JTL_DirectTableQuery("select ab.cName from tArtikel a
left join tStueckliste l ON l.kStueckliste = a.kStueckliste
left join tArtikel la ON la.kArtikel = l.kArtikel
left join tArtikelBeschreibung ab ON ab.kArtikel = la.kArtikel
WHERE ab.kSprache = 1 AND ab.kPlattform = 10001 AND a.kArtikel= " + str$(DeliveryNotePosition.ProductInternalId,0,0)," ","¶")
 

John

Sehr aktives Mitglied
3. März 2012
2.640
510
Berlin
Wofür machst Du überhaupt den Join auf tStueckliste und tArtikel in dem Code?
DeliveryNotePosition.ProductInternalId liefert doch bereits kArtikel oder nicht? Reicht doch, wenn Du damit in tArtikelBeschreibung gehst...
 

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.302
360
ich würde es vielleicht wie folgt machen:

nicht LEFT JOIN mit der WHERE Bedingung kPlattform = 10001, sondern einen normalen JOIN. Denn der iefert dann ein leeres Ergebnis, wenn die Bedingung nicht passt. Und dann mit COALESCE() bzw. ISNULL() den jeweils anderen Wert ausgeben.

Oder du denkst die Abfrage ganz neu und nimmst als Verbundbedingung des JOINs gleich kPlattform. Also sowas wie: select ... from tartikel left join tartikelbeschreibung using (kPlattform) where kArtikel = ...

Je nachdem, wie halt die Tabellen aufgebaut sind. Aber wie immer gilt auch hier: TMTOWTDI ;)