php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 21-09-2003, 18:34
Sirius
 Newbie
Links : Onlinestatus : Sirius ist offline
Registriert seit: Sep 2003
Beiträge: 36
Sirius ist zur Zeit noch ein unbeschriebenes Blatt
Standard Problem mit SELECT, SUM und WHERE

Hi @ all,

erstmal etwas zur Datenbankstruktur
In den Datenbanktabellen "f_user", "f_user_group" sind folgende, für meine Frage wichtige, Spalten enthalten:

________________________________
Tabelle: "f_user"
*************
user_id

user_points
________________________________
Tabelle: "f_user_group"
*******************
user_id

group_id
________________________________

Nun zu meinem Problem
Ich wollte mit folgender Abfrage den Gesamtwert (von Spalte "user_points") aller Zeilen, in denen die "group_id=99" ist, ermitteln:


$sql = mysql_query("SELECT f_users.user_points, SUM(user_points)AS punkte FROM f_users, f_user_group WHERE f_users.user_id=f_user_group.user_id AND group_id=99 GROUP BY f_users.user_points");
while ($myrow = mysql_fetch_array($sql)) {
echo $myrow[user_points];
}

Das Ergebnis das ich erhalte ist 03050 es sollte aber 80 sein.
Ahhhhhhhhh einen ganze nacht Programmieren und ein ganzen tag rechersche im Internet haben keinen Erfolg gebracht.
Wieso werden die zahlen nicht addiert?
Ich bin für jede hilfe sehr dankbar.


MfG Sirius
Mit Zitat antworten
  #2 (permalink)  
Alt 21-09-2003, 18:45
MelloPie
 PHP Master
Links : Onlinestatus : MelloPie ist offline
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
MelloPie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

wäre nicht group by f_users.user_ID richtig?
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

Geändert von MelloPie (21-09-2003 um 18:49 Uhr)
Mit Zitat antworten
  #3 (permalink)  
Alt 21-09-2003, 19:24
Sirius
 Newbie
Links : Onlinestatus : Sirius ist offline
Registriert seit: Sep 2003
Beiträge: 36
Sirius ist zur Zeit noch ein unbeschriebenes Blatt
Standard

SELECT f_users.username, f_users.user_points, SUM(user_points)AS punkte FROM f_users, f_user_group WHERE f_users.user_id=f_user_group.user_id AND group_id=99 GROUP BY f_users.user_id


Das Ergebnis das ich erhalte ist 3050000000000 es sollte aber 80 sein.
Es werden zwar nur die User mit der "group_id" 99 ausgewählt aber es wird nicht addiert.

warum nur
Mit Zitat antworten
  #4 (permalink)  
Alt 21-09-2003, 19:28
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

Code:
SELECT
  u.user_id, SUM(u.user_points) punkte, g.group_id
FROM
  f_user_groups g
  INNER JOIN f_users u USING (user_id)
WHERE
  g.group_id=99
GROUP BY g.user_id
poste mal bitte das ergebnis
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #5 (permalink)  
Alt 21-09-2003, 19:44
Sirius
 Newbie
Links : Onlinestatus : Sirius ist offline
Registriert seit: Sep 2003
Beiträge: 36
Sirius ist zur Zeit noch ein unbeschriebenes Blatt
Standard

user_id /punkte /group_id
2 /30 /99
3/ 50 /99
5 /0 /99
12 /0 /99
32 /0/ 99
34 /0 /99
36 /0 /99
51 /0 /99
69 /0/ 99
79 /0/ 99
82 /0/ 99

SQL Abfrage in phpMyAdmin gestellt
Mit Zitat antworten
  #6 (permalink)  
Alt 21-09-2003, 19:48
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

lass dir mal die spalte user_id nicht ausgeben
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #7 (permalink)  
Alt 21-09-2003, 20:16
Sirius
 Newbie
Links : Onlinestatus : Sirius ist offline
Registriert seit: Sep 2003
Beiträge: 36
Sirius ist zur Zeit noch ein unbeschriebenes Blatt
Standard

SELECT
SUM(u.user_points) punkte, g.group_id
FROM
f_user_group g
INNER JOIN f_users u USING (user_id)
WHERE
g.group_id=99
GROUP BY g.user_id

Das Ergebniss ist das gleiche in grün nur ohne user_id




SELECT f_users.user_points, SUM(user_points)AS punkte FROM f_users, f_user_group WHERE f_users.user_id=f_user_group.user_id AND group_id=99 GROUP BY f_users.user_id

Ergebniss:

user_points /punkte
30 /30
50 /50
0 /0
0 /0
0 /0
0 /0
0 /0
0 /0
0 /0
0 /0
0 /0

auch keine 80

hmmmm


Sirius
Mit Zitat antworten
  #8 (permalink)  
Alt 21-09-2003, 20:23
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

das group by ist auch noch falsch, wenn du die summe der punkte aller user einer gruppe haben willst, musst du auch nach group_id gruppieren
Code:
SELECT
  SUM(u.user_points) punkte
FROM
  f_user_groups g
  INNER JOIN f_users u USING(user_id)
WHERE
  g.group_id=99
oder für alle gruppen
Code:
SELECT
  g.group_id, SUM(u.user_points) punkte
FROM
  f_user_groups g
  INNER JOIN f_users u USING(user_id)
GROUP BY
  g.group_id
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #9 (permalink)  
Alt 21-09-2003, 21:30
Sirius
 Newbie
Links : Onlinestatus : Sirius ist offline
Registriert seit: Sep 2003
Beiträge: 36
Sirius ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Vielen Dank !!!

Für Deine Hilfe mrhappiness, hier ein kleiner Pokal von mir als Anerkennung für gute Arbeit




MfG Sirius
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

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.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Projektmanagement Damals und Heute
Projektmanagement Damals und HeuteWerfen Sie einen Blick auf das, was sich verändert hat, und entdecken Sie, wo die Zukunft dieses Gebietes hinsteuert.

18.01.2021 | Berni

Arbeitsmanagement-Tools
Arbeitsmanagement-ToolsWarum jedes Team Arbeitsmanagement-Tools benötigt. Man schätzt, dass 25% eines durchschnittlichen Mitarbeiter-Tages durch ineffiziente Arbeit vergeudet werden.

11.12.2020 | Berni


 

Aktuelle PHP Scripte

PHP-Login

Die Aufgabenstellung bestand darin, ein einfaches Login-Script zu erstellen, dass schnell und universell auf jeder Webseiten eingebaut werden kann. Der Schwerpunkt lag dabei auf der Entwicklung eines universell einsetzbarem Modul für den Login und zur

05.04.2021 Wallhalla | Kategorie: PHP/ Kundenverwaltung
ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script ansehen ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script

Mit unserer Lösungen können Sie nahezu jeden B2B / B2C Marktplatz betreiben den Sie sich vorstellen können. Ganz egal ob Sie einen Automarktplatz, Immobilenportal oder einfach einen Anzeigenmarkt betreiben möchten. Mit ebiz-trader können Sie Ihre Anforder

18.03.2021 Berni | Kategorie: PHP/ Anzeigenmarkt
Modelmanager 2

Der Modelmanager 2 kann als komplette Webseite oder als Webtool in einem eigenen Verzeichnis Installiert werden, so ist dieser auch sehr Flexibel einsetzbar.

17.03.2021 Stephan_1972 | Kategorie: PHP/ Bilder
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:35 Uhr.