Crystal report 8, Daten mit Index in umgekehrter Reihenfolge einlesen
Hallo,
ich will aus einer SQL-DB Datensätze auslesen, die jeweils den höchsten Index haben.
Z.B.
Lfd Nr Index Stück
175 0 175
175 1 175
180 0 175
180 1 190
180 2 190
185 0 180
Hier dürfen nur die Zeilen 2 (lfd 175, Index 1, 175 Stück)
5 (lfd 180, Index 2, 190 Stück)
und 6 (lfd 185, Index 0, 180 Stück)
ausgegeben werden.
Kann mir einer sagen, wie ich die Daten aus dem SQL-Server in umgekehrter Reihenfolge durchlese? Denn dann bräuchte ich nur jeweils den ersten Datensatz aus jeder laufenden Nr einlesen und verarbeiten.
Danke im Voraus
Jörg
ich will aus einer SQL-DB Datensätze auslesen, die jeweils den höchsten Index haben.
Z.B.
Lfd Nr Index Stück
175 0 175
175 1 175
180 0 175
180 1 190
180 2 190
185 0 180
Hier dürfen nur die Zeilen 2 (lfd 175, Index 1, 175 Stück)
5 (lfd 180, Index 2, 190 Stück)
und 6 (lfd 185, Index 0, 180 Stück)
ausgegeben werden.
Kann mir einer sagen, wie ich die Daten aus dem SQL-Server in umgekehrter Reihenfolge durchlese? Denn dann bräuchte ich nur jeweils den ersten Datensatz aus jeder laufenden Nr einlesen und verarbeiten.
Danke im Voraus
Jörg
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 190331
Url: https://administrator.de/contentid/190331
Ausgedruckt am: 22.11.2024 um 08:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo Jörg,
Du kannst die Daten direkt in Crystal sortieren, heißt glaube ich sogar Datensatzsortierung. Habe jetzt gerade kein Crystal vor mir. Danach kannst Du über Details unterdrücken eine Regel bilden, die den Datensatz nicht andruckt, wenn die vorhergehende Lfd-Nr. gleich der aktuellen ist.
Gruß Jörg
Du kannst die Daten direkt in Crystal sortieren, heißt glaube ich sogar Datensatzsortierung. Habe jetzt gerade kein Crystal vor mir. Danach kannst Du über Details unterdrücken eine Regel bilden, die den Datensatz nicht andruckt, wenn die vorhergehende Lfd-Nr. gleich der aktuellen ist.
Gruß Jörg
.. Du kannst natürlich das Ganze auch in der SQL-Abfrage machen.
Damit bekommst Du nur den Datensatz pro lfd_nr mit dem höchsten Index.
Gruß Jörg
SELECT a.lfd_nr,
a.index,
a.stück
FROM tabelle a
INNER JOIN (SELECT b.lfd_nr,
max(b.index) index
FROM tabelle b
GROUP BY b.lfd_nr) c on a.lfd_nr = c.lfd_nr
and a.index = c.index
Damit bekommst Du nur den Datensatz pro lfd_nr mit dem höchsten Index.
Gruß Jörg
Hallo Jörg,
So jetzt sitze ich auch vor meinem CrystalReports.
Falls Du nicht schon selber fündig geworden bist, hier eine Kurzanleitung.
Bericht -> Assistent für Datensortierung
- lfd_nr als erstes und index als 2. auswählen und als Aufsteigend festlegen
Bericht -> Bereichs-Assistent
- Bereich Details auswählen
- Formelbutton hinter Unterdrücken (kein Drilldown) betätigen
- im Formeleditor in der Mitte Funktionen -> Druckstatus
- die Formel "Previous (lfd_nr) = lfd_nr" bauen
Damit wird der aktuelle Datensatz unterdrückt wenn lfd_nr des vorherigen Datensatzes gleich der lfd_nr des aktuellen Datensatzes ist.
Gruß Jörg
So jetzt sitze ich auch vor meinem CrystalReports.
Falls Du nicht schon selber fündig geworden bist, hier eine Kurzanleitung.
Bericht -> Assistent für Datensortierung
- lfd_nr als erstes und index als 2. auswählen und als Aufsteigend festlegen
Bericht -> Bereichs-Assistent
- Bereich Details auswählen
- Formelbutton hinter Unterdrücken (kein Drilldown) betätigen
- im Formeleditor in der Mitte Funktionen -> Druckstatus
- die Formel "Previous (lfd_nr) = lfd_nr" bauen
Damit wird der aktuelle Datensatz unterdrückt wenn lfd_nr des vorherigen Datensatzes gleich der lfd_nr des aktuellen Datensatzes ist.
Gruß Jörg