Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   MS Access SQL Hilfe gesucht (Artikelrenner) (https://www.delphipraxis.net/216318-ms-access-sql-hilfe-gesucht-artikelrenner.html)

HCB 9. Dez 2024 18:10

Datenbank: Access mdb • Version: 2003 • Zugriff über: SQL / Delphi FireDac

MS Access SQL Hilfe gesucht (Artikelrenner)
 
Hallo, ich habe folgenden SQL code der auch funktioniert. Es sollen die Artikel-Renner angezeigt werden. Wie kann ich nun die Sortierung auf die Menge setzen(TotalArtBewegMenge) damit die am meisten verkauften Artikel oben angezeigt werden. Beim Versuch 'order by TotalArtBewegMenge' anzuhängen, läuft das Script in einen Fehler: 1 Parameter wurden erwartet, aber es wurden zu wenig Parameter übergeben! Könnte sich jemand von den Profis das mal ansehen und vielleicht feststellen wo der Fehler liegt? Das wäre sehr nett.

Delphi-Quellcode:
SELECT sArtikel.ArtNr, sArtikel.ArtName1, SUM(ArtBeweg.ArtBewegMenge) AS TotalArtBewegMenge
FROM sArtikel
INNER JOIN ArtBeweg ON sArtikel.ArtNr = ArtBeweg.ArtBewegArtNr
WHERE ArtBeweg.ArtBewegTyp IN (2, 4)
GROUP BY sArtikel.ArtNr, sArtikel.ArtName1
LG Harry

blawen 9. Dez 2024 18:21

AW: MS Access SQL Hilfe gesucht (Artikelrenner)
 
Zitat:

Zitat von HCB (Beitrag 1544048)
Delphi-Quellcode:
GROUP BY sArtikel.ArtNr, sArtikel.ArtName1

MS Access kenne ich nicht speziell, aber ich nehme an, dass auch in diesem Fall die Sortierrichtung angegeben werden muss (ASC/DESC)

Delphi-Quellcode:
GROUP BY sArtikel.ArtNr ASC, sArtikel.ArtName1 ASC

Delphi.Narium 9. Dez 2024 18:30

AW: MS Access SQL Hilfe gesucht (Artikelrenner)
 
Die Sortierung gehört zum Order by und nicht zum Group by.

Mir fallen zwei Möglichkeiten ein:
SQL-Code:
SELECT sArtikel.ArtNr, sArtikel.ArtName1, SUM(ArtBeweg.ArtBewegMenge) AS TotalArtBewegMenge
FROM sArtikel
INNER JOIN ArtBeweg ON sArtikel.ArtNr = ArtBeweg.ArtBewegArtNr
WHERE ArtBeweg.ArtBewegTyp IN (2, 4)
GROUP BY sArtikel.ArtNr, sArtikel.ArtName1 
ORDER BY 3 DESC -- sortiert nach der dritten Ergebnisspalte absteigend
oder:
SQL-Code:
select * from (
  SELECT sArtikel.ArtNr, sArtikel.ArtName1, SUM(ArtBeweg.ArtBewegMenge) AS TotalArtBewegMenge
  FROM sArtikel
  INNER JOIN ArtBeweg ON sArtikel.ArtNr = ArtBeweg.ArtBewegArtNr
  WHERE ArtBeweg.ArtBewegTyp IN (2, 4)
  GROUP BY sArtikel.ArtNr, sArtikel.ArtName1 
) x
ORDER BY TotalArtBewegMenge DESC
Leider weiß ich nicht, welche der Varianten von Access unterstützt wird.

HCB 10. Dez 2024 09:37

AW: MS Access SQL Hilfe gesucht (Artikelrenner)
 
Delphi.Narium vielen lieben Dank!
Beide Varianten funktionieren einwndfrei. Ich wähle die erste Variante und ich wusste bisher nicht, dass man auch nach der Ergebnisspalte-Nummer sortieren lassen kann.
Super Mann!:bounce2:

LG Harry

Jumpy 10. Dez 2024 11:16

AW: MS Access SQL Hilfe gesucht (Artikelrenner)
 
Müsste nicht auch das gehen (wobei in Access ist es ja manchmal schwierig):

Order By SUM(ArtBeweg.ArtBewegMenge)

HCB 10. Dez 2024 12:21

AW: MS Access SQL Hilfe gesucht (Artikelrenner)
 
Ja Jumpy, Order By SUM(ArtBeweg.ArtBewegMenge) geht auch, Danke!


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:26 Uhr.

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