Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL Abfrage Query - ich komm nicht auf die Lösung (https://www.delphipraxis.net/90498-sql-abfrage-query-ich-komm-nicht-auf-die-loesung.html)

hronny 18. Apr 2007 16:00

Datenbank: MySQL Embedded • Version: 5.0 • Zugriff über: ZeosLib

SQL Abfrage Query - ich komm nicht auf die Lösung
 
Ich habe schon einige PHP Projekt mit MySQL und PostgreSQL gemacht. Mit Delphi Datenbankabfragen starten ist auch nicht das Thema. Aber nun steh ich echt an einem Rätsel wo ich nicht weiterkomme.

Zustand:
- Eine CSV-Datei einlesen, Werte in DB speichern. OK
- Gruppen erstellen und Eingabewerte prüfen, auch kein Thema
- Es werden täglich Artikel mit neuen Preisen eingelesen, die in der Datenbank mit einem Datumsfeld gespeichert werden.

Problem:
Wie sortiere ich gleichzeitig nach dem letzten Datum ( date DESC ) und gruppiere dabei die Artikelnummer?

Beispiel:

1. Tag:
Artikel 1 - 10 Euro
Artikel 2 - 11 Euro
Artikel 3 - 12 Euro

2. Tag:
Artikel 1 - 15 Euro
Artikel 2 - 16 Euro
Artikel 3 - 17 Euro

3. Tag:
Artikel 1 - 9 Euro
Artikel 2 - 8 Euro

4. Tag:
Artikel 1 - 10 Euro
Artikel 3 - 10 Euro

nach Datum sortieren ist nicht das Thema, nach Artikel macht es auch keinen Sinn. Also soll zwar das neuste oben stehen, aber da ich ja nicht jeden Tag von allen einen neuen Preis kriege, sollen die Artikel nach Datum sortiert werden und evtl nur die letzten 3 Änderungen angezeigt werden.

Das Ergebnis sollte so aussehen:

Artikel 1 - 10 Euro > 4.Tag
Artikel 1 - 9 Euro > 3.Tag
Artikel 1 - 15 Euro > 2.Tag
Artikel 3 - 10 Euro > 4.Tag
Artikel 3 - 17 Euro > 2.Tag
Artikel 3 - 12 Euro > 1.Tag
Artikel 2 - 8 Euro > 3.Tag
Artikel 2 - 16 Euro > 2.Tag
Artikel 2 - 11 Euro > 1.Tag

Boah viel Text, und bestimmt ganz einfach. Ich komm nur nicht drauf.

mkinzler 18. Apr 2007 16:19

Re: SQL Abfrage Query - ich komm nicht auf die Lösung
 
Sollte doch mit LIMIT gehen.

Udontknow 18. Apr 2007 17:14

Re: SQL Abfrage Query - ich komm nicht auf die Lösung
 
Hallo!

Im Endeffekt ist das doch eine Gruppierung über Artikel und Datum, mit anschliessender Sortierung nach Datum.

Also einfach

SQL-Code:
select ARTIKEL,DATUM,SUM(BETRAG)
from PREISE
group by ARTIKEL,DATUM
order by DATUM DESC
Natürlich muss das SQL angepasst werden, je nach Normalisierung kommen da noch ein paar Joins rein...

Cu,
Udontknow


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz