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-Key: 259188

Url: https://administrator.de/contentid/259188

Printed on: April 16, 2024 at 13:04 o'clock

Member: emeriks
emeriks Jan 08, 2015 at 12:39:02 (UTC)
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.
Member: LianenSchwinger
Solution LianenSchwinger Jan 08, 2015 updated at 12:48:51 (UTC)
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
Member: LianenSchwinger
LianenSchwinger Jan 08, 2015 at 12:45:14 (UTC)
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
Member: Budders
Budders Jan 08, 2015 at 12:47:29 (UTC)
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!
Member: Budders
Budders Jan 08, 2015 at 12:48:49 (UTC)
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!
Member: LianenSchwinger
LianenSchwinger Jan 08, 2015 at 13:00:43 (UTC)
Goto Top
Was hast Du denn für eine Aufgabe?

G Jörg
Member: Budders
Budders Jan 08, 2015 at 14:36:55 (UTC)
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