AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi zweite oder dritte Eintrag bei Group by
Thema durchsuchen
Ansicht
Themen-Optionen

zweite oder dritte Eintrag bei Group by

Ein Thema von khalilazz · begonnen am 23. Mai 2007 · letzter Beitrag vom 23. Mai 2007
Antwort Antwort
khalilazz
(Gast)

n/a Beiträge
 
#1

zweite oder dritte Eintrag bei Group by

  Alt 23. Mai 2007, 08:14
Datenbank: mysql • Version: 5.02 • Zugriff über: ODBC
Hallo
Ich habe eine Tabelle wo die SchülterNote eingetragen sind.
ICh möchte den Zweit oder den Dritte beste Note eines Schüler herausfiltern,wo für jeden Schülter bis 10 NOten gescpeichert werden kann
Ich habe alles probiert aber bei Group by passt nur Min oder Max
ich würde auf jeden Vorschlag freuen

Select ....Note... From Schueltertbl
Group by Name
  Mit Zitat antworten Zitat
Gremlin

Registriert seit: 18. Apr 2006
Ort: Im Süden
176 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: zweite oder dritte Eintrag bei Group by

  Alt 23. Mai 2007, 08:58
Tut mir leid, ich bin mir nicht sicher was du genau möchtest.
Wärst du bitte so nett und könntest du eine Beschreibung deiner Tabelle(n) und deines Anliegens posten?
Gruss Gremlin
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#3

Re: zweite oder dritte Eintrag bei Group by

  Alt 23. Mai 2007, 09:04
Ich denke mal, dass er ein Feld in die GroupBy Klausel aufnehmen möchte, welches nicht im Select steht => dann hakt's natürlich

Edit: Oracle meint dazu übrigens folgendes:

Zitat:
ORA-00979 not a GROUP BY expression

Cause: The GROUP BY clause does not contain all the expressions in the SELECT clause. SELECT expressions that are not included in a group function, such as AVG, COUNT, MAX, MIN, SUM, STDDEV, or VARIANCE, must be listed in the GROUP BY clause.

Action: Include in the GROUP BY clause all SELECT expressions that are not group function arguments.
  Mit Zitat antworten Zitat
Gremlin

Registriert seit: 18. Apr 2006
Ort: Im Süden
176 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: zweite oder dritte Eintrag bei Group by

  Alt 23. Mai 2007, 09:52
Eigentlich ist IMHO nur vorgeschrieben, das alle Felder die keine Aggregatsfunktion beinhalten und keine
Konstanten sind in der group by angegegen werden müssen. Es ist aber zulässig weitere
Bedingungen im group by anzugeben, die unabhängig vom Select-Bereich sind.
Gruss Gremlin
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: zweite oder dritte Eintrag bei Group by

  Alt 23. Mai 2007, 09:53
Hallo,

mir scheint es soll statt der besten Note eines jeden Schülers dessen zweitbeste (z.B.) Note ermittelt werden. Da es dafür keine vordefinierte Funktion gibt, muss man den Tabellenaufbau kennen und kann dann vielleicht mit geordneten (ORDER BY) und abgezählten (LIMIT) SubSelects zu einem Ergebnis kommen.

Außerdem kommt es noch auf die Definition von "zweitbeste Note" an. Wenn man alle Noten (1 1 2) nach ihrem Wert aufsteigend ordnet, kann die zweitbeste Note als "1" oder als "2" ermittelt werden - je nach Definition.

Grüße vom marabu
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#6

Re: zweite oder dritte Eintrag bei Group by

  Alt 23. Mai 2007, 10:32
Ich schließ mich Marabu an, je Schüler eine Query sortiert nach den Noten und dann mittels Limit eben eine rausgesucht.
  Mit Zitat antworten Zitat
daddy

Registriert seit: 9. Sep 2005
Ort: Köln
124 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: zweite oder dritte Eintrag bei Group by

  Alt 23. Mai 2007, 20:11
In Firebird könnte man die zweit- und drittbeste Note z.B. über den Befehl

Select first 2 skip 1 Distinct(Note) from Schuelertbl order by Note ermitteln. (Vorausgesetzt es gibt überhaupt mehr als 1 Note.) Gibt es etwas Vergleichbares in MySQL? Entspricht das von Euch erwähnte "Limit" diesem Konstrukt?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: zweite oder dritte Eintrag bei Group by

  Alt 23. Mai 2007, 20:12
Zitat:
Entspricht das von Euch erwähnte "Limit" diesem Konstrukt?
Ja
Markus Kinzler
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#9

Re: zweite oder dritte Eintrag bei Group by

  Alt 23. Mai 2007, 20:37
Die Frage ist immer, ob man das wirklich in ein SQL Statement werfen will (wobei es hier wahrscheinlich wirklich trivial ist).
Möglich wäre sowas:
SQL-Code:
SELECT t1.Schüler
      ,Min(t1.Note)
FROM NotenBlabla t1
      ,NotenBlabla t2
WHERE t1.Schüler = t2.Schüler
and t1.Note > t2.Note
GROUP BY t1.Schüler
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  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 19:57 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