AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Select - group by ? Distinct?
Thema durchsuchen
Ansicht
Themen-Optionen

Select - group by ? Distinct?

Ein Thema von -187- · begonnen am 11. Jun 2011 · letzter Beitrag vom 11. Jun 2011
Antwort Antwort
-187-

Registriert seit: 24. Sep 2005
483 Beiträge
 
Delphi 2010 Architect
 
#1

Select - group by ? Distinct?

  Alt 11. Jun 2011, 02:48
Datenbank: Firebird • Version: 2 • Zugriff über: IB
Moin,

ich habe eine Datenbank die so aufgebaut ist:
Code:
FELD0|FELD1|FELD2|FELD3|FELD4
0001|Auto|1000|50|30
0002|Fahrrad|4000|10|30
0003|Auto|10000|90|30
0004|Auto|20000|90|30
0005|Bus|100|70|30
Jetzt möchte ich die Datenbank abfragen unter Berücksichtung folgender Punkte:
-Wenn es in Feld1 Duplikate gibt soll nur das erste Vorkommnis abgerufen werden
-Die Abfrage soll nach Feld0 ASC sortiert werden.

Jetzt habe ich an sowas gedacht:

Code:
SELECT * FROM TABLE SORT BY FELD0 ASC GROUP BY FELD1
Das klappt aber nicht weil man GROUP BY meines Wissens nach nur auf die Gesamte Abfrage anwenden kann. Wie würdert ihr das Problem lösen ?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#2

AW: Select - group by ? Distinct?

  Alt 11. Jun 2011, 08:30
Ungetestet:
SQL-Code:
SELECT
  *
FROM
  Tabelle A
WHERE
  Feld0 = (
    SELECT
      MIN(Feld0)
    FROM
      Tabelle
    WHERE
      Feld1 = A.Feld1)
ORDER BY
  Feld0
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#3

AW: Select - group by ? Distinct?

  Alt 11. Jun 2011, 09:27
Hi,

-Wenn es in Feld1 Duplikate gibt soll nur das erste Vorkommnis abgerufen werden
wie definierst du denn erstes Vorkommnis? Der Datensatz mit der kleineren ID (Feld0) oder der Datensatz, in dem Feld1 den kleineren Wert enthält?


Liebe Grüße,
Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#4

AW: Select - group by ? Distinct?

  Alt 11. Jun 2011, 09:32
Die Frage hatte ich mir auch gestellt, aber da er nach Feld0 aufsteigend sortieren möchte hab ich mich auf den kleinsten Wert dieses Feldes festgelegt. Falls das nicht richtig ist, muss man statt MIN eben etwas anderes einsetzen
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
-187-

Registriert seit: 24. Sep 2005
483 Beiträge
 
Delphi 2010 Architect
 
#5

AW: Select - group by ? Distinct?

  Alt 11. Jun 2011, 10:15
Achso sorry ich definiere nach dem Datensatz mit der kleineren ID (FELD0)!

Hmm den Code versteh ich nicht so ganz, was hat es mit dem "A" aufsich ?

//Edit: Dient das A als Referenz auf die Tabelle?

Geändert von -187- (11. Jun 2011 um 10:25 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#6

AW: Select - group by ? Distinct?

  Alt 11. Jun 2011, 10:25
Das A ist nur ein Alias, da ich 2 mal dieselbe Tabelle anspreche. Irgendwie muss ich ja die Datenmengen auseinanderhalten, um vergleichen zu können.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
-187-

Registriert seit: 24. Sep 2005
483 Beiträge
 
Delphi 2010 Architect
 
#7

AW: Select - group by ? Distinct?

  Alt 11. Jun 2011, 12:44
Macht Sinn und funktioniert, ich bin begeistert.

Vielen Dank für den Code

Cheers
  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 03:18 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