SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



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



:: Buchempfehlung ::

Das Zend Framework

Das Zend Framework zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQL

MySQL Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQL diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 09.02.2018, 11:19:27
basementmedia basementmedia ist offline
Anfänger
 
Registriert seit: Feb 2015
Alter: 38
Beiträge: 11
basementmedia befindet sich auf einem aufstrebenden Ast
Fehler Invalid use of group function

Hi zusammen,

ich hab einen relativ komplexen SQL-query der für eine Liste von Projekten den monatlichen "Verdienst" anteilig an den Projektstunden eine Users errechnet.

Dieser funktioniert soweit auch richtig:

PHP-Code:
SELECT
ROUND
(((sum(stunden.stunden))*(ROUND(((ROUND((projekte.hmax projekte.hsatz),2))/((SELECT sum(stundenFROM stunden WHERE projekt_id=projekte.ID))),2) )),2) as peuro_h_u
FROM stunden
LEFT JOIN projekte ON stunden
.projekt_id projekte.ID
WHERE stunden
.user_id 27 AND (stunden.datum between '2018-01-01' AND '2018-01-31')
GROUP BY stunden.projekt_id 
In der Ergebnistabelle werden untereinander alle Beträge ausgegeben.
Nun möchte ich aber nicht die Einzelbeträge haben sondern die Summe, also die Summe aus "peuro_h_u".

Mein erster Versuch war:

PHP-Code:
SELECT [B]SUM([/B]
ROUND(((sum(stunden.stunden))*(ROUND(((ROUND((projekte.hmax projekte.hsatz),2))/((SELECT sum(stundenFROM stunden WHERE projekt_id=projekte.ID))),2) )),2) as peuro_h_u
[B]) as summe[/B]
FROM stunden
LEFT JOIN projekte ON stunden
.projekt_id projekte.ID
WHERE stunden
.user_id 27 AND (stunden.datum between '2018-01-01' AND '2018-01-31')
GROUP BY stunden.projekt_id 
das hat aber leider nicht funktioniert (die Meldung "invalid use of group function" kommt).
Klar, das Group by beißt sich mi dem SUM.
Aber wie genau macht man dann sowas?

Ich hab auch probiert, einen neuen Query um den oberen zu schnüren, also
PHP-Code:
SELECT SUM(alter query) as Summe 
Aber auch das geht nicht.

Bin für jeden Tipp dankbar.

Viele Grüße

Daniel
Mit Zitat antworten
  #2  
Alt 09.02.2018, 11:30:44
basementmedia basementmedia ist offline
Anfänger
 
Registriert seit: Feb 2015
Alter: 38
Beiträge: 11
basementmedia befindet sich auf einem aufstrebenden Ast
AW: Fehler Invalid use of group function

OK, habs rausgefunden::

PHP-Code:
SELECT SUM(peuro_h_u) as peuro_h_u_summe FROM (SELECT
ROUND
(((sum(stunden.stunden))*(ROUND(((ROUND((projekte.hmax projekte.hsatz),2))/((SELECT sum(stundenFROM stunden WHERE projekt_id=projekte.ID))),2) )),2) as peuro_h_u
FROM stunden
LEFT JOIN projekte ON stunden
.projekt_id projekte.ID
WHERE stunden
.user_id 27 AND (stunden.datum between '2018-01-01' AND '2018-01-31')
GROUP BY stunden.projekt_id
ORDER BY sum
(stunden.stundenASC) as peuro_h_u_summe 
Falls jemand ein ähnliches Problem hat.

LG Daniel
Mit Zitat antworten
  #3  
Alt 09.02.2018, 11:46:12
basementmedia basementmedia ist offline
Anfänger
 
Registriert seit: Feb 2015
Alter: 38
Beiträge: 11
basementmedia befindet sich auf einem aufstrebenden Ast
AW: Fehler Invalid use of group function

Nun hab ich aber trotzdem noch ein Problem.
Ich will den oben aufgeführten Query als Subquery in einen anderen einbauen und von dem übergeordnete query ein Feld referenzieren. Folgender Versuch hat nicht geklappt (die neuen/geänderten Code-Teile hab ich fett formatiert):

Code:
SELECT 
u.ID as dataset_id, 
u.name,
(SELECT SUM(peuro_h_u) as peuro_h_u_summe FROM (SELECT
ROUND(((sum(stunden.stunden))*(ROUND(((ROUND((projekte.hmax * projekte.hsatz),2))/((SELECT sum(stunden) FROM stunden WHERE projekt_id=projekte.ID))),2) )),2) as peuro_h_u
FROM stunden
LEFT JOIN projekte ON stunden.projekt_id = projekte.ID
WHERE stunden.user_id = u.ID AND (stunden.datum between '2018-01-01' AND '2018-01-31')
GROUP BY stunden.projekt_id
ORDER BY sum(stunden.stunden) ASC) p) as peuro_summe
FROM user u ORDER BY u.name
D.h. die user_id, die im alten Query immer die 27 war, soll nun dynamisch von Parent-Query geändert werden.

Kann mir hier jemand helfen?

Beste Grüße
Daniel
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Invalid query - insert admin goiko MySQL 1 02.03.2009 15:37:36
Group By Fehler blanket MySQL 1 15.05.2007 09:20:04
Call to undefined function: new_child() loopmode PHP Grundlagen 3 14.01.2007 13:53:45
function: fehler bei string gerhard HTML, CSS und JavaScript Help! 4 30.05.2004 20:57:32
Fehler wenn ich eine function benutzen will Diabolo PHP für Fortgeschrittene und Experten 2 24.10.2002 09:20:58


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:47:43 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.


© 2001-2018 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt