-
Ranking- oder Top-Funktion
Hallo.
Ich habe 2 Dateien auf der i5. Positionsdatei und Konditionsdatei. In der Positionsdatei kann ein Artikel mit verschiedenen Versandwochen mehrmals vorkommen. In der Konditionsdatei kann der Artikel auch mehrmals stehen, mit einer Wochenangabe, an der ein Preis seine Gültigkeit hat. Ich muss nun für jeden Positionssatz den gültigen Preis in der Woche suchen. Ich muss das Ganze in Access bereitstellen. Dort mit verknüpften Tabellen und einer Abfrage mit Unterabfrage (Select Top 1........) läuft es viel zu lange. 5 Min. für die erste Seite. Ich wollte das Ganze jetzt als eine Pass-Through-Abfrage gestallten. Doch wie sieht hier die SQL-Syntax aus?
Ich weiß es leider nicht.
Irgendein Vorschlag?
LG
Kalle
-
Nun, da hilft dir nur ein skalarer Subselect:
select ....
, (select preis from preisfile where ..... fetch first 1 row only), ... from ...
Das Problem hierbei ist, dass der Subselect keinen order by enthalten kann und somit das Ergebnis ggf. nicht das gewünschte ist.
Ansonsten hilft da wohl nur eine UDF.
-
Na toll.
Hi,
also kann doch leider mein Problem nicht auf die i5 abschieben.
Sch........ade.
Danke.
LG
Kalle
-
Hallo,
vielleicht stehe ich ja auf dem Schlauch, aber Du willst doch einfach die Positions-Datei über Artikel-Nr. und Kalenderwoche mit der Konditions-Datei verknüpfen, um den gültigen Preis für die Position zu ermitteln oder nicht?
Pro Versandwoche und Artikel gibt es in der Konditions-Datei einen Satz?
Wenn ja, musst Du lediglich die Positions-Datei mit der Konditions-Datei über Artikel-Nr. und Versandwoche verknüpfen. (Für beide Dateien sollten allerdings Zugriffswege über ArtikelNr/Versandwoche vorhanden sein)
PHP-Code:
Select p.*, k.preis
from Position p join Kondition k
on p.ArtikelNr. = k.ArtikelNr
and p.VersandWoche = k.Versandwoche;
Birgitta
-
@Birgitta
Das Problem ist, dass ich nicht für jede Woche, jedes Datum genau 1 Preis habe.
Meistens wird über "Gültig Von-Bis" eine Kondition geregelt.
Mit "Preisdatum = Konditionsdatum" komme ich da nicht weiter, es gilt eben "Preisdatum >= Konditionsdatum" bzw. "Konditionsdatum <= Preisdatum" bzw. "Konditionsdatum between GueltigVon and GueltigBis".
Es gibt also zu einem Artikel mehrere Preise, wobei ich eben nur den 1. Preis mit dem kleinsten Bis-Datum benötige.
Als Full-Select gilt demnach
select Preis from PreisFile
where artikel='XXXX' and GueltigBis >= Konditionsdatum
Order by Gueltigbis
fetch first 1 row only
Dieses Konstrukt benötige ich aber im scalaren Subselect.
2 Probleme:
1. Sortierung nach einem Feld, dass nicht in der Ergebnisliste steht
2. nur den 1. Satz
-
Hallo und guten Morgen,
da habe ich ja eine kleine Diskussion angeregt.
Es wird wohl nicht so gehen, wie ich es mir gedacht,
oder via Abfrage in Access (die ja viel zu lange lief) gemacht habe.
Da muss ich mir Wohl oder Übel etwas anderes einfallen lassen.
Trotzdem vielen Dank an Euch.
LG
Kalle
Similar Threads
-
By mwithake in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 04-08-09, 14:57
-
By Marsman in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 27-09-06, 12:32
-
By steven_r in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 01-06-06, 12:16
-
By Spoldo in forum IBM i Hauptforum
Antworten: 15
Letzter Beitrag: 21-03-06, 13:50
-
By Kirsten Steer in forum Archiv NEWSblibs
Antworten: 0
Letzter Beitrag: 02-06-04, 07:53
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks