CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos

|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP 
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |

14.02.2005, 20:26:54
|
Junior Member
|
|
Registriert seit: Jul 2002
Ort: Heiden, NRW
Alter: 37
Beiträge: 218
|
|
SQL-Abfrage mit sum() AS und Ausgabe aller Daten
Nabend zusammen,
wie kann ich folgende Query ausgeben lassen:
SELECT * AS query, sum(kom) AS gesamtkom, sum(anzahl) AS gesamtpic FROM bw_gal ORDER BY datum DESC, gid DESC
Das Sternchen sind alle Daten die per-while-Schleife ausgegeben werden sollen, sum(anzahl) AS gesamtpic ist die Anzahl der Bilder und sum(kom) AS gesamtkom ist die Anzahl der Kommentare.
Wie kann ich das alles in einer Abfrage machen?
Ich weiss nit wie das geht... Aber es muss doch in einer Abfrage gehen!
Gruß, nivRam
|

14.02.2005, 20:36:22
|
 |
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
AW: SQL-Abfrage mit sum() AS und Ausgabe aller Daten
Statt * listest du hier - komma separiert - alle Spalten auf, die du aus der Datenbank lesen möchtest.
|

14.02.2005, 20:40:47
|
SELFPHP Guru
|
|
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
|
|
AW: SQL-Abfrage mit sum() AS und Ausgabe aller Daten
> * AS query,
wie können _mehrere_ spalten _einen_ alias haben?
|

14.02.2005, 20:41:16
|
Junior Member
|
|
Registriert seit: Jul 2002
Ort: Heiden, NRW
Alter: 37
Beiträge: 218
|
|
AW: SQL-Abfrage mit sum() AS und Ausgabe aller Daten
Ähhmm... etwa so:
SELECT gid,titel,datum AS query, sum(kom) AS gesamtkom, sum(anzahl) AS gesamtpic FROM bw_gal ORDER BY datum DESC, gid DESC
Das veranleitet mySQL immer noch zu einer Fehlermeldung.
Ich möchte gid, titel und datum in eine while-Schleife ausgeben und gesamtkom und gesamtpic nur ein einziges mal!
Wie gehtn das?
Edit:
Oder meint ihr so:
SELECT gid AS gid, titel AS titel, datum AS datum, sum(kom) AS gesamtkom, sum(anzahl) AS gesamtpic FROM bw_gal ORDER BY datum DESC, gid DESC
Es gibt aber immer noch einen Fehler!
Geändert von nivram (14.02.2005 um 20:51:03 Uhr)
|

14.02.2005, 20:55:34
|
SELFPHP Guru
|
|
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
|
|
AW: SQL-Abfrage mit sum() AS und Ausgabe aller Daten
Zitat:
Zitat von nivram
Ähhmm... etwa so:
SELECT gid,titel,datum AS query, sum(kom) AS gesamtkom, sum(anzahl) AS gesamtpic FROM bw_gal ORDER BY datum DESC, gid DESC
|
aha, das ist aber was anderes als * AS bla. bei dem statement wird der alias für "datum" verwendet.
Zitat:
Das veranleitet mySQL immer noch zu einer Fehlermeldung.
|
wie gut, dass ich hier ne glaskugel habe und des hellsehens mächtig bin.
Zitat:
Oder meint ihr so:
SELECT gid AS gid, titel AS titel, datum AS datum, sum(kom) AS gesamtkom, sum(anzahl) AS gesamtpic FROM bw_gal ORDER BY datum DESC, gid DESC
Es gibt aber immer noch einen Fehler!
|
siehe oben.
edit: folgendes hast du dir durchgelesen:
http://www.selfphp.com/forum/showthread.php?t=8195
?
Geändert von feuervogel (14.02.2005 um 20:56:35 Uhr)
|

14.02.2005, 20:57:39
|
Junior Member
|
|
Registriert seit: Jul 2002
Ort: Heiden, NRW
Alter: 37
Beiträge: 218
|
|
AW: SQL-Abfrage mit sum() AS und Ausgabe aller Daten
Ähhh... weiss nich was du jez von mir willst..
Aber mysql_error() gibt mir folgenden Fehler aus:
Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause
Wie kann ich das denn ändern, wenn ich trotzdem alle Datensätze haben will?!?!
|

14.02.2005, 22:18:17
|
 |
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
AW: SQL-Abfrage mit sum() AS und Ausgabe aller Daten
Zitat:
Zitat von nivram
Wie kann ich das denn ändern, wenn ich trotzdem alle Datensätze haben will?!?!
|
GROUP BY verwenden:
SELECT gid,titel,datum AS query, sum(kom) AS gesamtkom, sum(anzahl) AS gesamtpic FROM bw_gal GROUP BY gid ORDER BY datum DESC, gid DESC
|

14.02.2005, 22:19:14
|
SELFPHP Guru
|
|
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
|
|
AW: SQL-Abfrage mit sum() AS und Ausgabe aller Daten
Zitat:
Zitat von nivram
Ähhh... weiss nich was du jez von mir willst..
Aber mysql_error() gibt mir folgenden Fehler aus:
Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause
Wie kann ich das denn ändern, wenn ich trotzdem alle Datensätze haben will?!?!
|
genau die fehlermeldung wollte ich haben, danke.
wenn du neben einer summe (oder max()/min()/count()) noch spalten auswählst, braucht das statement eine group-by-klausel am ende. das sagt dir die fehlermeldung. also füge noch group by gid an und schau was bei rauskommt.
|

15.02.2005, 14:59:15
|
Junior Member
|
|
Registriert seit: Jul 2002
Ort: Heiden, NRW
Alter: 37
Beiträge: 218
|
|
AW: SQL-Abfrage mit sum() AS und Ausgabe aller Daten
OK, das Abfragen klappt soweit.
SELECT *, sum(kom) AS gesamtkom, sum(anzahl) AS gesamtpic FROM bw_gal GROUP BY gid ORDER BY datum DESC, gid DESC
Wie bekomme ich aber nun gesamtkom und gesamtpic ausgegeben?
Die Daten gebe ich so aus:
while($data = mysql_fetch_object($query)){
.....
}
Aber gesamtpic und gesamtkom will ich nur darunter ein einziges Mal ausgeben!
|

15.02.2005, 15:42:11
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 53
Beiträge: 4.748
|
|
Was hindert Dich daran die beiden nach Abschluss der Schleife auszugeben??
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 12:10:29 Uhr.
|