Sql Statement

  • Themenstarter Themenstarter Fastlane
  • Beginndatum Beginndatum
F

Fastlane

Gast
Guten Tag,

bin gerade auf ein Problem in meinem sql statement gestoßen. Ich hab eine Datenbank wo ich die Anzahl bestimmter Einträge zählen möchte. Dazu mein Statement:

("Select count * from table1 where Zahl > '9'");

Das funktioniert nicht irgendwie. Tausche ich das > mit einem = aus dann geht es. Kann mir jemand diesbezüglich weiterhelfen? Vielen Dank
 
So jetzt sitz ich am PC vorort.

Das ist der aktuelle Select, welcher nicht funktioniert:
Java:
("Select  count (*) from Tabelle1 where XY > '9'")

ich habe auch noch einen zweiten Select mit istgleich, welcher einwandfrei Funktioniert:

"Select count(*) from Tabelle1 where XY = '9'"


Nun zu euren Meinungen: also die Anführungszeichen sind anscheinend ein muss. Entferne ich die Anführungszeichen, so geht er mir in die Exception.
Beispielsweise so: "Select count(*) from Tabelle1 where XY = 9"

also ich denke das ' muss dort sein.

Das Komische ist, wenn ich kleiner als einfüge, gibt er mir die komplette Anzahl der Datensätze in der Datenbank."Select count(*) from Tabelle1 where XY < '9'"


Hier mal der ganze Codeschnipsel zu meinen Problem:

Java:
try{
            java.sql.Statement t9 = conn.createStatement();
            java.sql.ResultSet a9 = t9.executeQuery("Select  count (*) from Tabelle1 where DauerGesamt > '9'");
            while (a9.next()) {
                String strü9T = a9.getString(1);
               jTable1.getModel().setValueAt(new Integer(strü9T),0,10);
           }
           }catch (Exception e){      
                JOptionPane.showMessageDialog(null, "Anzeigefehler Gesamtdauer 9");
        
           }

Vielen Dank
 
Öh,...

Das Format müsste ein String sein:

Java:
int zahl1g;
        zahl1g=integerZahlg;
 
        int zahl2g;
        zahl2g=integerZahl1g;
 
        int ergebnisg;
        ergebnisg=zahl1g-zahl2g;//Berechnen

      String stg;
      int fg = ergebnisg;
      stg = ""+fg;
      
      txtGD.setText(stg);

D. H. in Obengenannten Text berechne ich die Differenz zweier Zahlen und wandle das Ergebnis in einen String um.

Von diesem Textfeld aus wird das in die Datenbank gespeichert.
 
Also wenn das Feld in der Datenbank wirklich eine Art String ist und das auch so bleiben soll, könnte sowas noch funktionieren:

Select count (*) from Tabelle1 where CAST(XY As integer) > 9

Ich hab allerdings keine Ahnung, ob das Datenbankabhängig ist. Auch dürfen dann in XY keine Strings stehen die nicht in einen Integer gecastet werden können! Also nur welche, die wirklich Zahlen darstellen.
 
Java:
Select count (*) from Tabelle1 where CAST(XY As integer) > 9

Funktioniert leider net.
Wie soll ich dann den Integer in ein swing textfeld setzen??Das Fordert doch schon von Grund auf einen String. Leider ist das Textfeld wichtig und kann nicht umgangen werden.

Gibt es denn kein sql stmt, welches das mit dem > hinbekommt?
 
im Moment der Anzeige kannst du jederzeit einen Int, Date oder beliebige sonstige Daten in Text umwandeln,
deswegen im Datenmodell alles als String vorzuhalten wäre ja irre,
speichere dort Zahlen, die wie hier z.B. Vergleiche gut unterstützen, fürs Textfeld verwende String.valueOf(zahl)
 
@SlaterB
Sehe ich auch so.

@Fastlane
Funktioniert der SQL Befehl nicht, oder ist das Problem die Umwandlung des zurückgegebenen Integers in einen String. Letzteres hätte SlaterB nämlich schon erklärt.
 

Neue Themen


Zurück
Oben