SQL-Query logisch falsch

tklenin

Benutzer
Beiträge
15
Hallo Leute,
schreibe gerade an einem C#-Programm,welches alle Attribute einer Tabelle anzeigen soll,dessen Argument maximal ist.
Folgendes query funktioniert nicht,wie gewünscht.
Anstatt einen einzelnen Datensatz zu liefern, den es soll,werden alle Datensätze der Tabelle ausgegeben.
Wie formuliere ich das query richtig?
Code:
string query = "SELECT Jahr,Einwohner_Millionen,Arbeitslosenquote_Prozent,Ministerpräsident FROM " + comboBox1.Text + " GROUP BY Jahr,Einwohner_Millionen,Arbeitslosenquote_Prozent,Ministerpräsident HAVING MAX(Einwohner_Millionen)";

Auch folgendes query ist logisch inkorrekt:
Code:
string query = "SELECT max(Einwohner_Millionen) FROM " + comboBox1.Text + " GROUP BY Einwohner_Millionen HAVING MAX(Einwohner_Millionen)";
 
Werbung:
Bekomm's nicht auf die Reihe
Code:
 string query = "SELECT MAX(Einwohner_Millionen),Jahr,Arbeitslosenquote_Prozent,Ministerpräsident FROM Bayern GROUP BY Einwohner_Millionen,Jahr,Arbeitslosenquote_Prozent,Ministerpräsident HAVING MAX(Einwohner_Millionen) ORDER BY MAX(Einwohner_Millionen) DESC LIMIT 1";
führt zu einem Syntaxfehler.
Arbeite übrigens mit einer ACCESS-Datenbank!
 
Für eine Implementierung wie diese wäre ein SQL-Server völlig überdimensioniert. Deshalb ACCESS. Da muss beim Client kein Server laufen,damit das Programm funktioniert.
SQL-Querys muss ich dennoch formulieren können.
Konnte jetzt eruieren,dass LIMIT für ACCESS nicht verfügbar ist;
das PENDANT wäre TOP. Allerdings führt folgendes Query noch nicht ganz zum Ziel, da anstatt dem entsprechenden Attribut ein neues mit dem gesuchten Wert hinzugefügt wird.
Code:
 string query = "SELECT TOP 1 MAX(Einwohner_Millionen),Jahr,Arbeitslosenquote_Prozent,Ministerpräsident FROM Bayern GROUP BY Einwohner_Millionen,Jahr,Arbeitslosenquote_Prozent,Ministerpräsident HAVING MAX(Einwohner_Millionen) ORDER BY MAX(Einwohner_Millionen) DESC ";
 
Werbung:
So, findest Du?
Dein Vorschlag lässt allerdings das GROUP BY und das HAVING außer acht. Folgendes Query führte zum Ziele:
Code:
string query = "SELECT TOP 1 MAX(Einwohner_Millionen) AS Einwohner_Millionen,Jahr,Arbeitslosenquote_Prozent,Ministerpräsident FROM"+ comboBox1.Text + " GROUP BY Einwohner_Millionen,Jahr,Arbeitslosenquote_Prozent,Ministerpräsident HAVING MAX(Einwohner_Millionen) ORDER BY Einwohner_Millionen DESC ";
 
Zurück
Oben