AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Gruppieren mit GROUP BY FIELD_NAME
Thema durchsuchen
Ansicht
Themen-Optionen

Gruppieren mit GROUP BY FIELD_NAME

Ein Thema von mojo777 · begonnen am 29. Sep 2003 · letzter Beitrag vom 30. Sep 2003
Antwort Antwort
mojo777

Registriert seit: 10. Sep 2003
402 Beiträge
 
#1

Gruppieren mit GROUP BY FIELD_NAME

  Alt 29. Sep 2003, 21:14
Hallo,
ich habe ein Problem mit einer SQL-Select abfrage.
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.
Was kann ich tun?

Vielen Dank im voraus.
Muh macht die kUh
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Gruppieren mit GROUP BY FIELD_NAME

  Alt 29. Sep 2003, 21:54
Hallo majo777,

wenn ein bestimmtes Feld nur einmal vorkommen soll, dann kannst du das SQL Schlüsselwort DISTINCT benutzen:

SQL-Code:
SELECT DISTINCT KND_NR FROM TRANSACTIONS
WHERE Status='open'
liefert z.B. jede KND_NR nur einmal, die eine offene Transaktion hat.

GROUP BY macht nur bei Aggregatfunktionen Sinn. Denn was soll die Datenbank denn mit so einer Gruppe machen?

SQL-Code:
SELECT KND_NR, COUNT(KND_NR), Status FROM TRANSACTIONS
GROUP BY KND_NR, Status
liefert die Anzahl aller Einträge für jeden Kunden aufgereiht nach dem Status.

Der Fehler ist aber wohl, dass open nicht in Anführungszeichen steht.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
mojo777

Registriert seit: 10. Sep 2003
402 Beiträge
 
#3

Re: Gruppieren mit GROUP BY FIELD_NAME

  Alt 30. Sep 2003, 00:22

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!
Muh macht die kUh
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:29 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