jeweils letzten Satz eines Ergebnisses

Alles zum SQL-Dialekt

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21199
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

jeweils letzten Satz eines Ergebnisses

Beitrag von Manfred »

Code: Alles auswählen

select fs.datumvon,
	   fs.datumbis,
	   fa.nummer,
	   fa.name,
	   fa.vorname
from fuehrerschein fs
left join fahrer fa on fa.id = fs.idfahrer
order by  fs.datumbis,fa.nummer
es gibt eine Tabelle, in die Sätze fortgeschrieben werden mit Anfang und Ende Datum. Es können eigentlich beliebig viele Sätze in der Tabelle fs stehen, die auf einen Fahrer verweisen. Ich möchte aber immer nur den letzten Satz aus FS bekommen, aber auch nur dann, wenn dort das datumbis des letzten Eintrages unterhalb eines bestimmten Wertes liegt. (Wenn ein weitere Satz vorhanden ist, der höher ist, dann darf kein Datensatz des Fahrers erscheinen weil das Datum ja noch nicht abgelaufen wäre).Irgendwie komme ich nicht drauf, oder habe es wieder vergessen, wie es aussehen muß.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21199
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: jeweils letzten Satz eines Ergebnisses

Beitrag von Manfred »

auh man, ist mein Problem diesmal so kompliziert?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 852
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: jeweils letzten Satz eines Ergebnisses

Beitrag von Marcus Herz »

Ne Manfred. Nicht kompliziert aber ich bin unterwegs
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21199
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: jeweils letzten Satz eines Ergebnisses

Beitrag von Manfred »

HI Marcus,
so direkt hatte ich Dich auch gar nicht gemeint. :lol: Normalerweise rege ich mit meinen Fragen immer diverse Diskussionen an....
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 651
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 3 Mal
Danksagung erhalten: 96 Mal
Kontaktdaten:

Re: jeweils letzten Satz eines Ergebnisses

Beitrag von nightcrawler »

Vielleicht hilft es, wenn Du es nachvollziehbar machst....ein SQL zum erstellen einer Testtabelle mit Beispiel-Daten, das gewünschte Ergebnis. Aber einfach halten und nicht mit 200 unnötigen Feldern rumspielen.
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 852
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: jeweils letzten Satz eines Ergebnisses

Beitrag von Marcus Herz »

Vielleicht so :

Code: Alles auswählen

select fs1.datumvon,
	   fs1.datumbis,
	   fa.nummer,
	   fa.name,
	   fa.vorname
From (select idfahrer., max(datumbis) as maxdatum from fuehrerschein group by 1) FS
Left Join fuehrerschein fs1 ON FS.idfahrer =  fs1.idfahrer and fs1.datumbis = FS.maxdatum
left join fahrer fa on fa.id = fs.idfahrer
Where FS.maxdatum < :datum
order by  fs.maxdatum, fa.nummer

auf einem tablett ist echt sch... Schreiben
Alles klar?
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21199
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: jeweils letzten Satz eines Ergebnisses

Beitrag von Manfred »

Hi Marcus,
ich glaube das paßt nicht. Ich muß nochmal genau überlegen, wie ich es verständlicher formuliere. Ich sehe auch gerade, das wohl noch ein weiterer Parameter in meiner Beispielausführung fehlt. Ich melde mich wieder, wenn ich da ein wenig genauer defineirt habe, was gebraucht wird.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9367
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 102 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: jeweils letzten Satz eines Ergebnisses

Beitrag von Tom »

Man kann notfalls auch eine Ergebnismenge (einen Cursor) mit anderen Mitteln durchsuchen. Manchmal ist ein SQL-Statement nur der vorletzte oder vorvorletzte Schritt.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21199
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: jeweils letzten Satz eines Ergebnisses

Beitrag von Manfred »

sicher, ich könnte das grobe Ergebnis im programm selbst noch weiter zerlegen. Das wollte ich aber nur machen, wenn es mit einem SQl Befehl nicht klappt. Ich denke mal, im Fall der Fälle könnte es von Vorteil sein, den SQL Server halt so viel Vorarbeite leisten zu lassen wie nur möglich.Aber wenn es nicht geht, dann muß das Ergebnis eben nachbearbeitet werden im Programm.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9367
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 102 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: jeweils letzten Satz eines Ergebnisses

Beitrag von Tom »

Hallo, Manfred.

Das verstehe ich und es wäre auch mein Ansatz. Aber wenn es zu viel Zeit kostet, ein Statement zu formulieren und zu validieren (!), das immer und exakt das Ergebnis liefert, das man wünscht, dann kann man auch einfach ein Schrittchen zurückgehen und ein anderes Schrittchen dranhängen, nur darauf wollte ich hinweisen.
Herzlich,
Tom
Benutzeravatar
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 651
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 3 Mal
Danksagung erhalten: 96 Mal
Kontaktdaten:

Re: jeweils letzten Satz eines Ergebnisses

Beitrag von nightcrawler »

wenn es nicht in ein Statement passt, könnte man es evtl auch als Stored Procedure schreiben.
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Antworten