9 Antworten Neueste Antwort am Sep 12, 2016 9:07 AM von kraemer@sky-data.de

    Letzten Datensatz einer Gruppe anzeigen

    kip

      Bestimmt ist es ganz einfach und ich blick's nur gerade wieder nicht:

       

      Wie kann man in einer Liste nur den jeweils letzten Datensatz einer Gruppe anzeigen lassen?

      Also zum Beispiel statt:

       

      Typ A | Wert | Datum |

      Typ A | Wert | Datum |

      Typ B | Wert | Datum |

      Typ B | Wert | Datum |

      Typ B | Wert | Datum |

      Typ B | Wert | Datum |

       

      bei einer Suche nach dem jeweils letzten Datum je Typ:

       

      Typ A | Wert | Datum |

      Typ B | Wert | Datum |

       

      Ich hab's gerade mit einem Script mit Filtern und Ergebnismengen probiert, bekomme es damit allein aber nicht hin (würde das gerne als einen Filter auf einen Button legen).

       

      kip

        • 1. Re: Letzten Datensatz einer Gruppe anzeigen
          kraemer@sky-data.de

          Guten Morgen Ben,

           

          das ist nicht ganz so trivial und bedarf einiger Überlegungen:

           

          Was passiert, wenn für einen Typ mehrere Daten drin sind, also wenn es 3 Mal Typ A 25.08.2016 gibt ...

           

          Wie viele Typen gibt es ?

           

          mein erster Ansatz wäre ein Ausschnitt in dem du die Datensätze nach Datum absteigend sortierst, nur den ersten - also eine Ausschnittszeile - anzeigst und dann zB per Script nach dem Typen filterst: 

           

          Vorteil: Einfache Umsetzung

          Nachteil: immer nur ein Typ sichtbar

           

          die Alternative wäre ein sql-Statement .... Das ist aber - denke ich - noch recht starker Tobak für Dich

           

          weitere Möglichkeit:

           

          eine einfache Self-Join der Tabelle auf sich selbst, eben nach Typ, und dann entweder über die max Funktion die gewünschten Werte ermitteln, alternativ dazu die Sortierung der SelfJoin Relation gleich nach Datum absteigend vornehmen. 

           

          je nach gewünschtem Ergebnis solltest du mit einem der Wege zum Ziel kommen - oder zumindest in die Nähe

           

          HTH

           

          Gerd

          • 2. Re: Letzten Datensatz einer Gruppe anzeigen
            kip

            Guten Morgen Gerd,

             

            Wie viele "Typen" es gibt, kann ich noch nicht sagen. Ich wollte das Beispiel für die Frage etwas vereinfachen (auch um das Prinzip zu verstehen). Eigentlich suche ich eine Lösung, um z.B. in einer Übersicht die jeweils letzte Rechnung zu einem Projekt anzeigen zu lassen (also: wann wurde in welchem Projekt die letzte Rechnung gestellt).

             

            Die Version mit den Ausschnitten scheint dafür nicht ganz passend zu sein. An SQL hatte ich auch schon gedacht, habe aber noch keine Ahnung davon, wie man ein SQL Statement in einen Filter integriert (habe die bisher nur in der Berechnung von Feldwerten eingesetzt).

             

            Ich schaue mir mal die Sortierung über SelfJoin und Datum an. Das klingt einfach genug ;-)

             

            Vielen Dank für Deine Rückmeldung und weiterhin frohes Schaffen,

            kip

            • 3. Re: Letzten Datensatz einer Gruppe anzeigen
              kraemer@sky-data.de

              Nun ja... So wie du es jetzt beschrieben hast, ist es ein Klacks. Du hast die Tabelle Rechnungen und die Tabelle Projekte. In deiner Tabelle Rechungen gibt es ja (hoffentlich) irgendwo das Feld ProjektID. Und genau so eine Relation erstellst du - zwischen Projekt::ProjektID und Rechnungen::Projektid und die sortierst du eben nach Datum absteigend - und aus die Maus ;-)

               

              HTH

               

              Gerd

              • 4. Re: Letzten Datensatz einer Gruppe anzeigen
                abonino

                Hallo kip

                 

                wenn Du nach den Typen 'gruppierst und deren Anzahl zählst, hast Du 'den letzten Datensatz.

                Diese Info kannst Du benutzen mit gehe zu Datensatz getNten (Script-gesteuert)

                Gruss Arthur

                 

                ( Logical functions > GetNthRecord)

                • 5. Re: Letzten Datensatz einer Gruppe anzeigen
                  kip

                  ... es kann ja so einfach sein, wenn man nur die Frage richtig zu stellen weiß ;-)

                  Hat wie gewünscht funktioniert - und das ganz ohne SQL, Ausschnitte und Co.

                   

                  Ich bin mir zwar nicht ganz sicher, ob Du das so gemeint hast, aber der Weg zum Ziel führte nach Deinem Tipp über

                   

                  - Relation zwischen Projekt::ProjektID und Rechnungen::Projektid (absteigend sortiert)

                  - Layout auf Basis der Tabelle Projekte

                  - Script-Trigger für das Layout Projekte mit Sortierung nach Rechnungsdatum

                   

                  Ergebnis: Eine schöne Übersicht, wann für welches Projekt jeweils die letzte Rechnung gestellt wurde. Alle anderen Rechnungen werden gar nicht erst angezeigt. Wunderbar!

                   

                  Danke!

                  kip

                  • 6. Re: Letzten Datensatz einer Gruppe anzeigen
                    kip

                    Hallo Arthur,

                     

                    Danke für Deine Rückmeldung. Ich hatte es ähnlich wie von Dir beschrieben probiert, bin mehrfach gescheitert und habe inzwischen eine recht einfache Lösung gezeigt bekommen, die noch einfacher zum Ziel führt (s.o.).

                     

                    Gruß,

                    kip

                    • 7. Re: Letzten Datensatz einer Gruppe anzeigen
                      kraemer@sky-data.de

                      Was triggerst du denn immer wie ein wilder ;-) Spaß beiseite: Du brauchst keinen  Scripttrigger oder ähnliches nach meinem Dafürhalten ..... Die Rechnungen sind durch die Relation immer mit deinen Projekten verknüpfte, durch die Sortierung sorgst du dafür, dass immer die Letzte Rechnung "oben steht" ... ein trigger ist dafür nicht notwendig. Probiere mal: Geh auf das Layout und füge in deinem Datensatz den Platzhalter für dein Rechnungsdatum ein .... getriggert werden muss da nix.

                      • 8. Re: Letzten Datensatz einer Gruppe anzeigen
                        kip

                        Jip, habe ich inzwischen auch festgestellt, dass es ohne geht ;-)

                        Aber jetzt habe ich in meinen Ausschnitten bei den Projekten (Darstellung aller Rechnungen zum Projekt) die Reihenfolge auch vertauscht. Da sollte sie dann doch anders herum sein ...

                        Also mit zweitem Tabellen-Auftreten lösen (1x aufsteigend / 1x absteigend), oder gibt es dafür eine geschicktere Lösung?

                         

                        kip

                        • 9. Re: Letzten Datensatz einer Gruppe anzeigen
                          kraemer@sky-data.de

                          Wenn ich richtig verstehe, was du meinst, brauchst du kein weiteres Tabellenauftreten. Ein weiterer Ausschnitt auf dem Layout vom vorhandenen To, diesen Ausschnitt anders rum sortiert, sollte genügen ...