PDA

View Full Version : Query mit drei Dateien



Ronny
10-01-08, 10:31
Hallo

Für einen Drei-Jahres-Vergleich will ich drei Dateien über die Artikelnummer verknüpfen, um zu sehen, wie der Umsatz pro Artikel in den jeweiligen Jahren war. Leider kommen nicht alle Artikel in jedem Jahr vor.

Beispiel:
Datei 1
Artikel1 1000,-
Artikel2 1500,-
Artikel3 2000,-

Datei 2
Artikel2 2000,-
Artikel3 2500,-
Artikel4 1000,-

Datei 3
Artikel3 2800,-
Artikel4 1500,-
Artikel5 1000,-


Das Ergebnis sollte nun wie folgt aussehen


Artikel1 1000,- - -
Artikel2 1500,- 2000,- -
Artikel3 2000,- 2500,- 2800,-
Artikel4 - 1000,- 1500,-
Artikel5 - - 1000,-

Ich bekomme aber immer nur maximal die Artikel anzegeigt, die sich in der ersten Datei befinden.

Hat jemand eine Idee?

Fuerchau
10-01-08, 10:38
Das geht so mit Query leider nicht.
Hierfür musst du einen QM-Query (also SQL) machen.

Oder du splittest den Query in mehrere Schritte.

1. Query Datei1 -> Ausgabe neue Datei
2. Query Datei2 -> Anhängen an Datei
3. Query Datei3 -> Anhängen an Datei
4. Query -> Auswerten der Datei

Für das Erstellen der Datei musst du im jeweiligen Query Pseudo-Felder (berechnete Felder) erstellen, die dann positionsgerecht in die Datei geschrieben werden.

Nächste Variante:

Du nimmst als 1. Datei deinen Artikelstamm und verknüpfst diesen mit den 3 Dateien.

woki
10-01-08, 11:19
Ich würde es so machen, wie Fuerchau es in seinem 2. Vorschlag beschrieben hat:
Nimm den Artikelstamm als Primärdatei und verknüpfe diese mit den 3 Umsatzdateien.

Ronny
10-01-08, 12:22
Danke!

Mit dem Artikelstamm als Primärdatei hat es geklappt. Der einzige Haken war, dass dann der ganze Artikelstamm angedruckt wird.
Um es auf die tatsächlich verkauften Artikel einzuschränken, nehme ich jetzt nur die Artikel, bei denen der gesamte Umsatz größer als Null ist.

Fuerchau
10-01-08, 12:42
Du bekommst dann nur die Artikel, die in allen 3 Dateien Umsätze haben !

Query kann nicht direkt mit NULL vergleichen (wenn kein Satz da ist).
Eine Abfrage auf eine verknüpftes Feld macht automatisch einen INNER JOIN !

Hier helfen berechnete Felder:

Umsatz1 VALUE(Ums1Wert, 0)

und in der Abfrage:
Umsatz1 GT 0

Ronny
10-01-08, 12:46
So hatte ich es auch gemeint.
In einem berechneten Feld SUMME werden die drei Umsätze aufsummiert.
Später frage ich bei der Selektion ob ob SUMME <> 0 ist.