Anmelden

View Full Version : Letzter Satz in einem PF mit QUERY auslesen



Seiten : 1 [2]

B.Hauser
11-06-09, 09:27
Vorausgesetzt, dass Du pro Days1 und Kreditor den Satz mit dem Minimalen Days3-Wert und dem Maximalen Days4-Wert suchst, und außerdem der Minimale Days3 und der Maximale Days4-Wert immer im gleichen Satz liegen, kannst Du Dir die folgende View bauen (unter STRSQL oder in eine Quelle kopieren und einmalig mit RUNSQLSTM ausführen). Z.Info eine View ist eine "logische" Datei ohne Zugriffsweg und kann im Query/400 wie eine physische Datei verwendet werden.

View: ermitteln Tag, Kreditor, Minimaler Days3 und Maximaler Days4-Wert

Create View MyLib/MyView as
Select Days1, Kreditor, Min(Days3) Min3, Max(Days4) Max4
from mydays
group by Days1, Kreditor

Diese View kannst Du dann im Query/400 verwenden.
Im Query/400 verknüpfst Du diese View mit der Original-Datei über Days1, Kreditor, Min3=Days3 und Max3=Days4.
Damit erhälst Du jeweils den (kompletten) Satz pro Days1, Kreditor mit dem Minimalen Day3 und dem Maximalen Days4-Wert.
Du brauchst dann nur noch im Query den Kreditor oder das Datum auswählen, wie Du es zurvor auch schon gemacht hast.

Birgitta

Q_SYS
11-06-09, 17:46
JUHU!!!!!!!!!!! das hat super funktioniert! ich bin einen riesen schritt weiter, und die lösung, so mit VIEW & co. gefällt mir sehr gut!!!! dankeschön!
ein kleines problem habe ich aber noch: jetzt kann es ja sein, dass an einem tag mehrere zahlungen für den gleichen kreditor gebucht werden. d. h. ich bräuchte so ein view auch nochmals für die letzte beleg-nr. je kreditor. dieses view baue ich dann in letzten query ein, so dass ich wirkich die letzte buchung je kreditor / tag erhalte. kannst du mir da bitte nochmal eben schnell helfen? ist doch bestimmt ein klacks für dich... DANKESCHÖN!!!!

Fuerchau
12-06-09, 07:14
Wie wärs hier mit "max(BelegNr) BelegNr"

Q_SYS
12-06-09, 14:08
das habe ich auch schon probniert, bin aber nicht zum ergebnis gekommen: wenn ich das in das sql-statement einbau, erhalte ich wieder ALLE belege je kreditor. das will ich ja so nicht. wie muss ich das statement aufbauen, damit ich nur die letzte zahlung je kreditor erhalte?

Fuerchau
12-06-09, 14:18
Du musst da schon die View ergänzen, mit der du verknüpfst:

Create View MyLib/MyView as
Select Days1, Kreditor, Min(Days3) Min3, Max(Days4) Max4, max(BelegNr) BelegNr
from mydays
group by Days1, Kreditor

Q_SYS
14-06-09, 15:35
in tiefer verneigung! vielen Dank, hat alles nun so geklappt, wie ich es brauche! und das SQL_VIEW eröffnete mir noch woanders völlig neue möglichkeiten! also nochmals, vielen dank für eure hilfe!

gruß, Q_SYS