SQL Abfrage bzw. Ausgabe

Ferdi76

Grünschnabel
Hi zusammen,

ich brüte hier über ein wahrscheinlich sehr einfach zu lösendes Problem, finde aber keine passende Lösung. Der Debugger hilft mir auch nicht weiter und im Netz findet sich auch nichts passendes.
Also zu meinem Problem:

Ich habe Werte in einem Array stehen, die ich in einer zusammengesetzten SQL-Anweisung einbinden möchte. Der Code läuft zwar, gibt mir aber nur einen Wert zurück. Im Grunde müssten aber eine ganze Reihe von Werten zurückgegeben werden!
Kann ich also eine SQL-Anweisung so in dieser Art abfragen bzw. zusammensetzen?

Hier nun der Code:

Code:
ResultSet erst_m = stmt1.executeQuery("select id from MELDUNGEN_INITIAL group by id having count(*) > 1");

while (erst_m.next()){

for(int u = 0; u < j - 1; u++)
		{
			if (sort_array[u] != dt)
			{
				
ResultSet result = stmt1.executeQuery("select id, datum from meldungen_initial where id ="+ erst_m.getInt(1) +" and trunc(datum) = to_date('"+ sort_array[u] +"', 'YYYY-MM-DD')");
				while (result.next())
				{
			System.out.println(result.getString(1)+" "+ result.getString(2));
				}
				result.close(); 
			 }
		} 

}
 
so wird das ResultSet richtig ausgelesen:

Java:
java.sql.ResultSetMetaData meta=    rs.getMetaData();                                                                              
int spalten = meta.getColumnCount();                                                                                                
 while(rs.next()){                                                                                                                     
   for(int i=1;i<(spalten+1);i++)  {                                            
        System.out.print(rs.getString(i)+" ");               
   }
   System.out.println();
}
 
Zuletzt bearbeitet von einem Moderator:
Danke für die bisherige Hilfe. Ich habe jetzt meinen Code dementsprechend angepasst. Wenn ich das Datum in der Selektion weglasse funktioniert es auch, also alle "gewünschten" Wertepaare werden dann zurückgegeben. Ich habe also noch ein Problem mit dem Datum...Muss man hierzu etwas beachten? Der Code sieht jetzt wie folgt aus:

Code:
import java.sql.*;
import java.sql.Date;

//...

PreparedStatement result = con.prepareStatement("select distinct b.id, b.name, a.id, a.nummer  from meldungen a, inhaber b,  where a.id =? and trunc(a.datum) = to_date(?, 'YYYY-MM-DD') and a.gih_id = b.id and a.id = c.id");

//......
java.sql.Date sort_array[] =  new java.sql.Date[25];

//......
for(int u = 0; u < j - 1; u++)
		{
			if (sort_array[u] != dt)
			{
				
				result.setString( 1, erst_m.getString(1));
				result.setDate( 2, sort_array[u]);
				result.executeUpdate();
				ResultSet rset = result.executeQuery();

				java.sql.ResultSetMetaData meta= rset.getMetaData();                                                                             
				int spalten = meta.getColumnCount();                                                                                               
					while(rset.next()){                                                                                                                     
				         for(int e=1;e<(spalten+1);e++)  {                                           
				              System.out.print(rset.getString(e));               
				         }
				         System.out.println();
				      } 
				
				rset.close();
			}
         }
 
Was willst du denn mit trunc(a.datum) bewirken?
Eventuell wäre hier die to_char Funktion besser angebracht...

*grüssle*
MeinerEiner
 
Jetzt hab ich es, so scheint es zu stimmen. Der SQL-Code war nicht ganz korrekt!
Das Select - Statement lautet

Code:
PreparedStatement result = con.prepareStatement("select distinct b.id, b.name, a.id, a.nummer  from meldungen a, inhaber b,  where a.id =? and trunc(a.datum) = ? and a.gih_id = b.id and a.id = c.id");

So nimmt er mir auch das Datum!

Danke für die Hilfe!

Grüsse
 
Zurück