budders
Goto Top

Zählen der Ergebnisse eines Querys

Hallo liebe Administratoren,

ich habe ein kleines Problem mit einer SQL Abfrage.
Ich versuche, die zurückgegebenen Werte eines Querys zu zählen, doch bekomme ich leider immer einen Syntaxfehler.
Das ist mein bisheriger Code
select count(*) from (
SELECT count(gdbprdlb.gobasgpf.objnr)
FROM (
	pscan.porehkpf INNER JOIN gdbprdlb.gobasgpf ON pscan.porehkpf.objnr = gdbprdlb.gobasgpf.objnr
	)
WHERE pscan.porehkpf.kdnr >= 70000 group by pscan.porehkpf.objnr
);

ich bin leider noch nicht sehr versiert auf diesem Gebiet.

Die eigentliche Abfrage
SELECT count(gdbprdlb.gobasgpf.objnr)
FROM (
	pscan.porehkpf INNER JOIN gdbprdlb.gobasgpf ON pscan.porehkpf.objnr = gdbprdlb.gobasgpf.objnr
	)
WHERE pscan.porehkpf.kdnr >= 70000 group by pscan.porehkpf.objnr
funktioniert jedoch.

Das umschlingen der eigentlichen Abfrage mit einem weiteren select count(*) habe ich auf stackoverflow gefunden (http://stackoverflow.com/questions/13837704/select-count-from-result-qu ..)

(sollte ich dies hier nicht linken dürfen, bitte ich dies zu entschuldigen, ich editiere es dann raus.)

Wenn noch fragen offen sind, ich ergänze gerne!

Mit freundlichen grüßen
Budders

Content-ID: 259188

Url: https://administrator.de/forum/zaehlen-der-ergebnisse-eines-querys-259188.html

Ausgedruckt am: 22.12.2024 um 14:12 Uhr

emeriks
emeriks 08.01.2015 um 13:39:02 Uhr
Goto Top
Hi,
ich denke, beim COUNT macht das GROUP BY eh keinen Sinn. Lass es mal weg.

SELECT count(gdbprdlb.gobasgpf.objnr)
FROM (
	pscan.porehkpf INNER JOIN gdbprdlb.gobasgpf ON pscan.porehkpf.objnr = gdbprdlb.gobasgpf.objnr
	)
WHERE pscan.porehkpf.kdnr >= 70000

E.
LianenSchwinger
Lösung LianenSchwinger 08.01.2015 aktualisiert um 13:48:51 Uhr
Goto Top
Hallo Budders,

da du in der inneren Abfrage die Anzahl Zeilen je "objnr" zählst und mit der äusseren Abfrage quasi die Anzahl der verschiedenen "objnr" zählst kannst Du auch direkt folgendes probieren.

SELECT COUNT(DISTINCT gdbprdlb.gobasgpf.objnr) 
FROM pscan.porehkpf 
INNER JOIN gdbprdlb.gobasgpf ON pscan.porehkpf.objnr = gdbprdlb.gobasgpf.objnr 
WHERE pscan.porehkpf.kdnr >= 70000

G Jörg
LianenSchwinger
LianenSchwinger 08.01.2015 um 13:45:14 Uhr
Goto Top
... damit bekommt er die Anzahl aller Zeilen die der INNER JOIN liefert aber nicht die Anzahl der verschiedenen objnr.

Falls er natürlich die zurückgegebenen Werte nicht zählen sondern summieren wollte dann liegst Du richtig. face-smile

G Jörg
Budders
Budders 08.01.2015 um 13:47:29 Uhr
Goto Top
Danke für den Hinweis, ergibt aber immernoch einen Syntaxfehler, aber das Problem hat sich gerade eh erledigt, bin etwas an der Aufgabe vorbei.

Trotzdem Danke!
Budders
Budders 08.01.2015 um 13:48:49 Uhr
Goto Top
Danke, das war das, was ich gesucht hatte.
Kann ich nun aber leider auch nichts mehr mit anfangen, da ich nicht die Aufgabe damit erfüllt habe.

Trotzdem Danke!
LianenSchwinger
LianenSchwinger 08.01.2015 um 14:00:43 Uhr
Goto Top
Was hast Du denn für eine Aufgabe?

G Jörg
Budders
Budders 08.01.2015 um 15:36:55 Uhr
Goto Top
Ich denke, dass dies hier nicht hin gehört, da meine ursprüngliche Frage ja beantwortet ist und ich die Aufgabe nicht wirklich konkret erläutern kann, ohne Interna preiszugeben. Ich danke dir trotzdem für deine Hilfsbereitschaft face-smile