Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Wert beim Laden einer Tabelle nicht berücksichtigen

Hallo,

folgendes Problem. Aus einer Datenquelle erhalte ich für einen Artikel 2 Preise. Einer davon ist falsch und soll nicht weiter mit geladen werden.

Das ist meine Tabelle:

Material:
left keep (Temp_Best)
LOAD
MaterialNR as M_MaterialNR,
    .....

Preis as M_Preis,
     
..........
FROM
SAP\C_MD_Material_EK.qvd
(
qvd)
where len(Materialname) > 1
and len(Material) >1
and len(MaterialNR)>1
;

Der Preis 29,09 Euro (Feld: Preis) soll bei der Artikelnummer  123476 (Feld: MaterialNR) ausgeschlossen werden. Wie müsste ich die where Bedingung schreiben?

VIele Grüße

1 Solution

Accepted Solutions
marcus_sommer

So geht's:

Tabelle1:

LOAD * INLINE [

    ArtikelNummer, Preis

    1, 10

    1, 5

    2, 20

]

where not (ArtikelNummer = 1 and Preis = 5);

Beide Bedingungen müssen gleichzeitig erfüllt sein, daher das Einklammern und der Match soll auf numerische Werte gehen und daher keine Anführungszeichen - dies sind für String-Vergleiche.

- Marcus

View solution in original post

9 Replies
marcus_sommer

Sofern es sich nicht um einen absoluten Einzelfall handelt (sehr unwahrscheinlich) benötigst Du eine Logik, mit der richtig/falsch unterschieden werden kann (neuer/älter, größer/kleiner, ...). Sofern dass nicht eindeutig möglich ist, würde ich eher beide Preis-Felder einladen und mit einem Flag-Feld oder einem dritten Preis-Feld die angenomme "Preis-Wahrheit" zeigen. Nur damit werden Fehler in der Prozesskette offenbar und man kann in die Interpretation und abgeleiteten Handlungen gewisse "Unschärfen" einkalkulieren. Derartige Fehler sollte man eher zeigen und dokumentieren als bereinigen und/oder wegblenden.

Schöne Grüße

Marcus

Not applicable
Author

Aber wie würde denn in diesem Fall die where Bedingung aussehen?

marcus_sommer

Ungefähr so:

....

and not (MaterialNR = 23476 and Preis = 29,09)

....

Wobei so manuelles Eingreifen wirkt nur im Einzelfall (bei mehreren Fällen wird dies schnell unübersichtlich und inperformant) und ist auch nicht transparent und wird später schnell "vergessen" (in jeder Hinsicht).

- Marcus

Not applicable
Author

Ich bekomm das irgendwie nicht hin. Könntest du mir hier helfen?

marcus_sommer

So geht's:

Tabelle1:

LOAD * INLINE [

    ArtikelNummer, Preis

    1, 10

    1, 5

    2, 20

]

where not (ArtikelNummer = 1 and Preis = 5);

Beide Bedingungen müssen gleichzeitig erfüllt sein, daher das Einklammern und der Match soll auf numerische Werte gehen und daher keine Anführungszeichen - dies sind für String-Vergleiche.

- Marcus

Not applicable
Author

Warum geht das hierbei nicht?

FROM
SAP\....qvd
(
qvd)
where len(MN) > 1
and len(M) >1
and len(MNR)>1
and not (MaterialNR = 12and Preis = 2)
;

marcus_sommer

Zwischen 12 und and ist kein Leerezeichen, daher wird es nicht richtig erkannt.

- Marcus

Not applicable
Author

Sorry Schreibfehler von mir.

FROM
SAP\....qvd
(
qvd)
where len(MN) > 1
and len(M) >1
and len(MNR)>1
and not (MaterialNR = 12 and Preis = 2)

Es geht aber trotzdem nicht. Auch mit ... "12" and Preis = "2"

marcus_sommer

Probier mal die 12 mit single-qoutes '12' vielleicht ist ja doch ein String.