3Danke
ERLEDIGT
JA
JA
ANTWORTEN
7
7
ZUGRIFFE
242
242
EMPFEHLEN
-
Hallo da draußen,
ich hab ein ziemliches Problem und bin mit meinem Latein auch relativ am Ende... Mysql ist halt doch sehr viel weitläufiger wie ich es kenne.
Derzeit habe ich eine Mysql-Abfrage, die mir alle Benutzer aus einer Benutzerliste gibt (wo Status == 1 ... bedeutet soviel wie "noch aktiv"), die noch KEINEN eintrag in einer "Verknüpfungstabelle" haben... (nur einem bestimmten Event zugeschrieben, deswegen die INNER JOINS)
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
SELECT * FROM intern_user WHERE ( id NOT IN ( SELECT a.userID FROM intern_dienstplan AS a INNER JOIN intern_events_uucat AS b ON a.uucatID=b.id INNER JOIN intern_events_ucat as c ON b.ucatID=c.id INNER JOIN intern_events_cat AS d ON c.catID=d.id WHERE d.eventID = '".$_POST['eventid']."' ) ) AND status='1'
Was ich jetzt haben möchte, ist eine Abfrage, die mir sowohl alle Benutzer liefert die noch keinen Eintrag haben, aber auch die Benutzer, die nicht genug Dienst haben.
Es gibt 50% und 100% Dienste (theoretisch auch andere, aber lassen wir es mal so).
Der "Wert" eines Dienstes liegt bei intern_events_uucat als Spalte "wert", ohne %-Zeichen.
Mein Versuch war einfach bei der inneren Abfrage ein
anzuhängen, aber das funktioniert nicht. Vielleicht weil es falsch formatiert ist, weis ich nicht. Hab da nicht so viel Erfahrung mit dieser Funktion.Code :1
AND SUM(b.wert)=100
Wär klasse wenn mir jemand helfen könnte... Soll mir einfach nur die Benutzer ohne, bzw. die mit zu wenig (unter 100% gesamt) ausgeben.
Gruß, Lime
-
29.08.11 13:59 #2
Hi,
ich bin mir nicht 100%-ig sicher, aber ich glaube, dass du noch ein GROUP BY brauchst, damit dein SUM() funktioniert.
-
Huhu,
darüber habe ich auch schon nachgedacht. Aber ich kann doch nicht einfach die WHERE-klausel durch nen GROUP BY ersetzen...
gruß
-
Du brauchts zusätzlich eine GROUP BY Klausel, da diese die Daten definiert, die ausgewertet werden können....oder so ähnlich zumindest *grübel*
Zumindest ist diese soweit ich weiß unerlässlich für Sachen wie SUM()
http://www.sql-und-xml.de/sql-tutori...von-daten.html
Dort auf der Seite ist auch ein Beispiel mit SUM, wobei vorher halt ein GROUP BY benutzt wird.
MfG Alaitoc
-
Code :
1 2 3 4 5 6 7 8
SELECT a.userID FROM intern_dienstplan AS a INNER JOIN intern_events_uucat AS b ON a.uucatID=b.id INNER JOIN intern_events_ucat as c ON b.ucatID=c.id INNER JOIN intern_events_cat AS d ON c.catID=d.id WHERE d.eventID = '".$_POST['eventid']."' AND sum(b.wert)>=100 GROUP BY a.userID
so hätte ich es jetzt verstanden... funktioniert aber dennoch nicht.
-
29.08.11 14:22 #6
- Registriert seit
- Apr 2009
- Ort
- Düsseldorf (NRW)
- Beiträge
- 508
Hi,
Bedingungen von Aggregatfunktionen wie sum, count o.ä. müssen in die HAVING Klausel nach der GROUP BY Klausel.
Best regards,
Tim Bureck
-
Genau, wie im Beispiel Nr. 9 beschrieben:
Code :1 2 3 4 5
SELECT A.A_NR, SUM(A.A_PREIS * B.A_STUECK) As [Umsatz-dieses-Artikels] FROM ARTIKEL As A INNER JOIN UMSATZ As B ON A.A_NR = B.A_NR GROUP BY A.A_NR HAVING SUM(A.A_PREIS * B.A_STUECK) > 10000
Auf der Seite steht eigentlich alles wissenwerte über SQL, man muss sich nur etwas Zeit dafür nehmen
MfG Alaitoc
-
Die Zeit fehlt mir. Ich probier das gleich mal aus.

€: Ich hätte nicht gedacht, dass es klappt, aber es tut es!
Vielen vielen Dank an alle Helfer.
Für alle, die vielleicht dasselbe Problem ereilen sollte, hier mein fertiger Code:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
SELECT * FROM intern_user WHERE ( id NOT IN ( SELECT a.userID FROM intern_dienstplan AS a INNER JOIN intern_events_uucat AS b ON a.uucatID=b.id INNER JOIN intern_events_ucat as c ON b.ucatID=c.id INNER JOIN intern_events_cat AS d ON c.catID=d.id WHERE d.eventID='".$_POST['eventid']."' GROUP BY a.userID HAVING sum(b.wert) >= 100 ) ) AND status='1'
Gruß, LimeGeändert von Lime (29.08.11 um 15:13 Uhr)
Ähnliche Themen
-
Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server...
Von Lumakrieger im Forum PHPAntworten: 6Letzter Beitrag: 07.08.09, 22:12 -
MySQL Query: Warning: mysql_fetch_row():supplied resource is not a valid MySQL result
Von blck im Forum Relationale DatenbanksystemeAntworten: 3Letzter Beitrag: 29.11.08, 20:08 -
MySQL: ERROR 2013 (HY000): Lost connection to MySQL server during query
Von blumshuett im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 07.06.06, 23:23 -
mysql: mysql-server: mysql.sock fehlt (Suse 9.1)
Von zappoth im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 08.05.06, 18:06 -
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
Von strandjunge im Forum Relationale DatenbanksystemeAntworten: 0Letzter Beitrag: 19.01.05, 15:33





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren