Max-Wert einer Abfrage

Ja wenn ich es raus mach kommt zwar keine Fehlermeldung mehr aber ich habe dann auch keine Ausgabe mehr :confused:
Es kommt dann einfach zu keiner Ausgabe mehr :( :( :(

Edit:// Also er kommt nicht mal mehr in die while-Schleife rein und wenn ichs ohne while Schleife mache weil es ja nur einen Datensatz geben sollte kommt eine SQL Exception mit Column not found.

MfG
Saban
 
Zuletzt bearbeitet:
Mach doch bitte einfach mal Access auf und teste, ob deine Queries (sowohl Sub, als auch das ganze) in Access direkt laufen würden.

Schalte jetzt einfach mal die Komponente Java aus und begib dich direkt an der Basis auf die Fehlersuche. Sollte da alles klappen, dann ist es eindeutig ein Java-Problem. Wenn nicht, dann ein SQL-Problem.
 
Hey!

Also die SQL Anweisung stimmt liegt irgendwie an Java danke! Muss jetzt halt schauen wie ich die Ausgabe hin bekomme...

Danke nochmal!

MfG
Saban
 
Liegt vielleicht daran, dass du Daten abfrägst, die dir das Query überhaupt nicht bereitstellt:
Java:
str = str + result.getString("Artikel.Artikelbezeichnung") + ", " +           
 result.getDouble("Artikelpreis.Preis") + 
", " + 
result.getDate("Artikelpreis.von_Datum") + ", " +               
 result.getDate("Artikelpreis.bis_Datum");
 
Hi!
also ich hab das Problem folgendermaßen gelöst.
Java:
public void ausAufgabe1(Statement stmt){
		try {
			result = stmt.executeQuery(
					" SELECT min(Artikelpreis.Preis) AS minPreis " +
					" FROM Artikelpreis, Artikel " +
					" WHERE Artikel.ArtikelNr = Artikelpreis.ArtikelNr " +
					" AND Artikelpreis.von_Datum >= #01/01/2007# " +
					" AND Artikelpreis.bis_Datum <= #31/12/2007# ");
			
			System.out.println();
			/* Ausgabe von Artikelbezeichnung funktionier nicht!? */
			while(result.next()){
				System.out.println("Der minimal Preis für ein Produkt des Jahres 2007 beträgt: " + result.getDouble("minPreis") + "€");
			}
			
			System.out.println("Ausgabe der Aufgabe 1");
		} catch (SQLException e) {
			System.err.println("Fehler beim auslesen der Aufgabe 1! " + e);
		}		
	}
ich glaube die Lösung ist akzeptabel... Ich habe zwar keine Ahnung wieso ich keine Artikelbezeichnung ausgeben kann aber das find ich schon auch noch raus...

Danke für eure Hilfe

MfG
Saban
 
Zuletzt bearbeitet von einem Moderator:
Du kannst mit Java doch nur weiterverarbeiten, was dir die Datenbank auch bereitstellt.
Was dir die Datenbank bereitstellt, ist im Normalfall das, was drin steht und das worum du sie bittest. Ich gehe jetzt mal davon aus, dass die Daten drin stehen.

Aber: Du frägst die Datenbank ja gar nicht danach:

Code:
SELECT Artikelpreis.von_Datum, Artikelpreis.bis_Datum FROM Artikelpreis

Da steht nirgendwo was von Artikelnummer oder Bezeichnung. Also kannst du 100 mal schreiben:

Java:
result.getString("Artikel.Artikelbezeichnung")

Es wird nie etwas da sein, was du mit Java weiterverarbeiten könntest.

Also ist die einfachste Lösung, die Datenbank danach zu fragen.

Davon abgesehen, hat deine jetzige Lösung nichts mehr mit deiner ursprünglichen Fragestellung zu tun. Du wolltest den gesamten Datensatz, der dem Kriterium niedrigster Preis entspricht. Wie du das erreichen kannst, hab ich dir ja schon beschrieben.
 
Hi!

Also dieser Code entspricht nicht mehr dem in dem die Abfrage für die Artikelbezeichnung drin stand. Da hatte ich Artikelbezeichnung in der SELECT Anweisung schon eingefügt.
Außerdem wollte ich von Anfang an mir den Artikel mit dem niedrigsten Preis bzw den niedrigsten Preis ausgeben lassen. Ich habe das ausprobiert der Code funktioniert einwandfrei und das einfacher wie mit SubSelects oder sonst was. Bitte versteh mich nicht falsch ich danke dir für deine Unterstützung aber der Code ist der den ich gesucht habe und er funktioniert!


MfG
Saban
 
Zurück