Qlik Community

QlikView Creating Analytics

Discussion Board for collaboration related to Creating Analytics for QlikView.

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

Re: Wert beim Laden einer Tabelle nicht berücksichtigen

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

9 Replies

Re: Wert beim Laden einer Tabelle nicht berücksichtigen

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

Re: Wert beim Laden einer Tabelle nicht berücksichtigen

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

Re: Wert beim Laden einer Tabelle nicht berücksichtigen

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

Re: Wert beim Laden einer Tabelle nicht berücksichtigen

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

Re: Wert beim Laden einer Tabelle nicht berücksichtigen

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

Re: Wert beim Laden einer Tabelle nicht berücksichtigen

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)
;

Re: Wert beim Laden einer Tabelle nicht berücksichtigen

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

- Marcus

Not applicable

Re: Wert beim Laden einer Tabelle nicht berücksichtigen

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"

Re: Wert beim Laden einer Tabelle nicht berücksichtigen

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

Community Browser