![]() |
Gruppieren mit GROUP BY FIELD_NAME
Hallo,
ich habe ein Problem mit einer SQL-Select abfrage.:wall: ich möchte eine Transaktionen-Tabelle auslesen und diese dann im DBGrid ausgeben. Jetzt weist die Tabelle mehrere Einträge zu einem Kunden auf. Der Kunde soll aber nur einmal in der Tabelle erscheinen und nciht 5 oder noch öfter. Ich benutze folgenden Befehl: SELECT * FROM TRANSACTIONS WHERE STATUS=open GROUP BY KND_NR Das Ganze steht in einer InterBase SQL Query und wird von DataSource angesprochen. Diese wiederum von DBGrid.....Vielleicht habe ich da einen Fehler eingebaut. Es kommt der Fehler -104. :gruebel: Was kann ich tun? Vielen Dank im voraus. |
Re: Gruppieren mit GROUP BY FIELD_NAME
Hallo majo777,
wenn ein bestimmtes Feld nur einmal vorkommen soll, dann kannst du das SQL Schlüsselwort DISTINCT benutzen:
SQL-Code:
liefert z.B. jede KND_NR nur einmal, die eine offene Transaktion hat.
SELECT DISTINCT KND_NR FROM TRANSACTIONS
WHERE Status='open' GROUP BY macht nur bei Aggregatfunktionen Sinn. Denn was soll die Datenbank denn mit so einer Gruppe machen?
SQL-Code:
liefert die Anzahl aller Einträge für jeden Kunden aufgereiht nach dem Status.
SELECT KND_NR, COUNT(KND_NR), Status FROM TRANSACTIONS
GROUP BY KND_NR, Status Der Fehler ist aber wohl, dass open nicht in Anführungszeichen steht. |
Re: Gruppieren mit GROUP BY FIELD_NAME
:party:
Danke. Distinct klappt, so wie ich mir das vorgestellt habe. der fehler liegt nciht asn 'open', da ich das nur so heir im forum geschrieben habe. ich benutze WHERE TRN_ZURUECK=0 und 0 ist ein integer. Naja. Vielleicht werde ich den Fehler mal verstehen. Nochmals Danke! :corky: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:33 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