Datensätze zählen.

  • Themenstarter Themenstarter MiDniGG
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
M

MiDniGG

Gast
Hi,

ich hab gesucht und nichts gefunden.

Deshalb meine Frage. Wie kann ich mit SQL die Datensätze zählen? Und ich meine nicht mit COUNT(*), da dazu eine Gruppierung notwendig ist.

Kurz. Ich brauch die Anzahl der Datensätze, dass ich mit einem BETWEEN o. ä. bestimmte Datensätze auslesen/anzeigen kann...

Ich hab es zwar schon anderst gelöst bekommen, möchte aber doch wissen, ob es möglich ist das mit SQL zu lösen.

Vielen Dank schon mal für die Hilfe 🙂

Hier der funktionierende Code:

Code:
Class.forName( "org.hsqldb.jdbcDriver" );
Connection cn = DriverManager.getConnection( "jdbc:hsqldb:hsql://localhost:6745/webdb", "hsqlAdmin", "admin");
PreparedStatement ps = cn.prepareStatement("SELECT Name, eMail, Homepage, Text, Date FROM guestbook ORDER BY id DESC");
ResultSet rs = ps.executeQuery();
			
doc.add(new Phrase("Gästebucheinträge", new Font(BaseFont.createFont(BaseFont.COURIER_BOLD, BaseFont.CP1250, true), 20)));
			PdfPTable table = new PdfPTable(3);
			table.setWidths(new int[] {20, 40, 40});
			table.setWidthPercentage(100);
			table.setHorizontalAlignment(table.ALIGN_MIDDLE);
			
			for (int i = 0; i < pages; i++) {
				rs.next();
			}
			
			for (int i = 0; i < 10 && rs.next(); i++)
			{...

Und hier der SQL-Code der nicht will wie ich es gerne hätte:

Code:
SELECT Name, eMail, Homepage, Text, Date FROM guestbook WHERE COUNT(*) BETWEEN " + pages +" AND " + (pages + 10) + " ORDER BY id DESC

wundert euch nicht über die Titel, das ist nur eine kleine Übung 🙂
 
midnigg hat gesagt.:
Hi,

ich hab gesucht und nichts gefunden.

Deshalb meine Frage. Wie kann ich mit SQL die Datensätze zählen? Und ich meine nicht mit COUNT(*), da dazu eine Gruppierung notwendig ist.

Kurz. Ich brauch die Anzahl der Datensätze, dass ich mit einem BETWEEN o. ä. bestimmte Datensätze auslesen/anzeigen kann...

Ich hab es zwar schon anderst gelöst bekommen, möchte aber doch wissen, ob es möglich ist das mit SQL zu lösen.

Vielen Dank schon mal für die Hilfe 🙂

Hier der funktionierende Code:
[..]
wundert euch nicht über die Titel, das ist nur eine kleine Übung 🙂

In SQL kannst du die Anzahl der Datensätze mit folgendem grundsätzlichem SELECT-Statement abfragen:
Code:
SELECT count(*) from deineTabelle t [where t.column1 ...];
 
Hm klingt schon mal gut. Danke 🙂

Jedoch hab ich noch ein problem, da ich ja möchte, dass nur z.B. die Datensätze 10-20 ausgegeben werden.
Nach ID kann ich allerdings nicht sortieren, da ja auch wieder Datensätze gelöscht werden können...
Hat noch jemand eine Idee?

Oder geht das, dass ich dann einfach noch bei WHERE irgendwie COUNT(*) > 10 AND < 20 eingeb?

Gruß 🙂
 
häh, count(*) kanntest du doch schon (und hast darauf hingewiesen),

abollm wiederholt das bekannte Wissen, was schon merkwürdig genug ist,
aber dann sagts du auch noch 'Hm klingt schon mal gut. Danke'?
verrückt 😉


was du willst gibts im allgemeinen SQL nicht,
in Oracle gibts
SELECT x FROM yWHERE rownum between 12 and 15;

in MySQL gibts
SELECT x FROM y WHERE z limit 12,3;

(geklaut aus:
http://www.issociate.de/board/post/147275/rownum_equivalent_unter_MySQL?.html
)
 
SlaterB hat gesagt.:
häh, count(*) kanntest du doch schon (und hast darauf hingewiesen),

abollm wiederholt das bekannte Wissen, was schon merkwürdig genug ist,
aber dann sagts du auch noch 'Hm klingt schon mal gut. Danke'?
verrückt 😉


was du willst gibts im allgemeinen SQL nicht,
in Oracle gibts
SELECT x FROM yWHERE rownum between 12 and 15;

Wenn schon, dann:
Code:
SELECT count(x) FROM y WHERE rownum between 12 and 15;
;-)
 
SlaterB hat gesagt.:
häh, count(*) kanntest du doch schon (und hast darauf hingewiesen),

abollm wiederholt das bekannte Wissen, was schon merkwürdig genug ist,
aber dann sagts du auch noch 'Hm klingt schon mal gut. Danke'?
verrückt 😉

Hehe. Jaah. Aber ich wusste nicht wie (in welcher reihenfolge) ich es schreiben sollte... Und da ich es so noch nicht ausprobiert hatte hab ich das halt mal geschrieben ^^

Naja. Habs etz so gelöst:

Code:
SELECT * FROM (SELECT id, Name, Email, Homepage, Date, Text FROM guestbook AS guestbook LIMIT " + (pages + 10) + " OFFSET " + (pages) + ") ORDER BY id

Wie Hobbit es geschrieben hat 😉
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben