ERLEDIGT
JA
JA
ANTWORTEN
15
15
ZUGRIFFE
807
807
EMPFEHLEN
-
Hallo zusammen,
ich habe eine in phpMyAdmin funktionierende Abfrage. Nun will ich die Ergebnisse zählen. Mit count bekomme ich viele Einzelwerte (Zahlen), die ich allerdings als Summe benötige. Wie kann ich das umsetzen?
Code :1
select count(*) from ordertab LEFT JOIN orderart ON ordertab.id = orderart.orderid LEFT JOIN reviews ON ordertab.userid = reviews.userid AND orderart.artid = reviews.objectid where 1 and ISNULL(reviews.id) GROUP BY ordertab.ordernr
Grüße & Danke
quertail
-
Probier mal das

Code :1
select count(*) from ordertab LEFT JOIN orderart ON ordertab.id = orderart.orderid LEFT JOIN reviews ON ordertab.userid = reviews.userid AND orderart.artid = reviews.objectid where 1 and ISNULL(reviews.id) GROUP BY ordertab.ordernr LIMIT 0 , 1
Ich bin keine Signatur! - Auch wenn`s so aussieht :) - Wirklich!
Über ein Danke freut sich jeder
-
Hallo & frohes neues Jahr,
das funktioniert leider nicht.
Grüße
querytail
-
kommt eine Fehlermeldung oder wird noch alles angezeigt?
Ich bin keine Signatur! - Auch wenn`s so aussieht :) - Wirklich!
Über ein Danke freut sich jeder
-
So, mal formatieren und schon sieht man den Fehler
Du hast ein GROUP BY auf die ordernr. Ergo gibt es die ANzahl pro ordernr. Aus.Code sql:1 2 3 4 5 6 7 8 9 10 11 12 13
SELECT COUNT(*) FROM ordertab LEFT JOIN orderart ON ordertab.id = orderart.orderid LEFT JOIN reviews ON ordertab.userid = reviews.userid AND orderart.artid = reviews.objectid WHERE 1 AND ISNULL(reviews.id) GROUP BY ordertab.ordernr
Wenn du die Anzahl über alle haben willst, dann nimm der GROUP BY raus.---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Hallo & Danke,
@Kalito: es kommt keine Fehlermeldung.
@Yaslaw: Wenn ich das "GROUP BY ordertab.ordernr" rausnehme, wird mir nur eine (1), aber viel zu große Zahl ausgegeben.
Grüße
querytail
-
Von was genau willst du denn die Anzahl haben?
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Alle Ordernummern bzw. IDs (ordertab.id oder ordertab.ordernr).
-
Pro was?
Einfach über alles? Dann stimmt das SQL ohne den GROUP BY.
Pro Ordensnummer? Dann stimmt deines, einfach im SELECT-Teil noch die Ordenummer inzufügen damit du weisst welche Nummer welche Anzahl hat
Code sql:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
SELECT ordertab.ordernr, COUNT(*) FROM ordertab LEFT JOIN orderart ON ordertab.id = orderart.orderid LEFT JOIN reviews ON ordertab.userid = reviews.userid AND orderart.artid = reviews.objectid WHERE 1 AND ISNULL(reviews.id) GROUP BY ordertab.ordernr
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
So hatte ich es ja (fast) und da werden mir hunderte Einzelwerte angezeigt. Jeweils die Ordernummer mit der Anzahl der Artikel. Ich benötige aber nun noch die Gesamtanzahl der Ordernr.
ordernr count(*)
20---- ----13
21---- ----1
26---- ----3
27---- ----3
28---- ----6
31---- ----3
.
.
.
-
Tja, die Gesammtzahl ist nun mal dein Anfangsscript ohne den GROUP BY. Genauso wie ich es oben beschreiben habe. Wenn die Zahl die da kommt nicht das gesuchte ist, dann brauche ich viel mehr Infos von dir um herauszufinden was falsch geht. Denn rein aus SQL-Sicht ist dein Script ohne den GROUP BY die [Summe aller Counts mit GROUP BY].
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Moin querytail,
wenn du doch aber sagst "Ich benötige aber nun noch die Gesamtanzahl der Ordernr"...
-> dann mach doch kein "Count(*)" = Anzahl aller Datensätze, sondern
-> mach ein "Count(distinct(ordertab.ordernr))".
Genau so hast du es doch verbal auch beschrieben.
Grüße
Biber
-
Mit distinct hatte ich das auch schon versucht. Einziger Unterschied ist, dass jeweils nur ein Artikel gezählt wird.
ordernr Count(distinct(ordertab.ordernr))
20---- ----1
21---- ----1
26---- ----1
27---- ----1
28---- ----1
31---- ----1
Im phpMyAdmin sieht das immer so aus:
Irgendwie muss ich doch auch an die 1403 (die sind richtig) kommen.Code :1
Zeige Datensätze 0 - 29 ( 1,403 insgesamt, die Abfrage dauerte 0.0465 sek.)
-
phpmayadmin zeigt immer nur die ersten 30 an. Steht ja auch so.
Wenn du das Resultat eines speziefischen haben willst, dann grenze es mit WHERE ein oder springe mit LIMIT auf die entsprchende 'Seite'---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Moin querytail,
nochmal...
Ich meinte nicht, du solltest ein "SELECT ordernr, Count(distinct(ordertab.ordernr)) FROM (s.o.)" machen.
Ich meinte, du solltest ein "SELECT Count(distinct(ordertab.ordernr)) as DasSind1403 FROM (s.o.)" machen.
Grüße
Biber
Ähnliche Themen
-
Muß rausbekommen welche Einzelwerte bestimmte Gesamtwerte ergeben
Von Jan-Frederik Stieler im Forum SmalltalkAntworten: 6Letzter Beitrag: 23.09.10, 16:25 -
MYSQL - ABFRAGE COUNT() mit JOINS
Von hmmNaGut im Forum Relationale DatenbanksystemeAntworten: 6Letzter Beitrag: 18.04.08, 22:55 -
Mehrere Einzelwerte von MYSQL mit ajax
Von MadCrusher im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 06.03.08, 18:07 -
Unterschied MySQL's COUNT und PHP's count
Von proux im Forum PHPAntworten: 5Letzter Beitrag: 21.02.05, 00:23 -
[mysql] count über 2 joins?
Von DarkMasterDJ im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 02.02.05, 15:17





Zitieren

Login





