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 ::

TYPO3 Kochbuch

TYPO3 Kochbuch 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 > MySQLi/PDO/(MySQL)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 11.03.2014, 11:24:50
Doc_McSky Doc_McSky ist offline
Anfänger
 
Registriert seit: Oct 2007
Beiträge: 49
verschiedene Werte addieren durch Abfrage

Hallo liebe Leute,

ich versuche nun seit etlichen Minuten eine SQL Abfrage zu basteln, die mich aber leider nicht zum Ziel führt und ich auch nicht mehr genau weiß nach welchen Begriffen ich googlen soll, daher frage ich mal ganz nett nach.

Ich möchte aus einer Tabelle Werte addieren, aber nur nach gewissen Bedingungen und das dann in einer neuen Variablen speichern also wie "... SUM(spalte1) AS werte ..." die Addition anschließend in "werte" übergibt, aber das geht nicht meint SQL. :(

Hier mein Versuch des Aufrufs:
Code:
SELECT 
CASE 
  WHEN ´payment´ = 'Failed' THEN SUM(´mc_gross´) AS failsum 
  ELSE SUM(´mc_gross´) AS grosssum
END, SUM(´mc_fee´) AS feesum 
FROM tabelle 
WHERE ´datecreation´>='2014-01-01' AND ´datecreation´<='2014-12-31'
Zum einen weiß ich jetzt gar nicht ob der WHEN Vergleich so geht mit nur einem Gleichheitszeichen oder muss ich zwei nehmen wie bei PHP, aber dort gibt er keine Fehlermneldung aus.
Zum anderen stoppt SQL definitiv bei dieser SUM() AS Geschichte und sagt halt Fehler bei AS.
Wie kann ich denn ggf. Werte in unterschiedlichen, bisher nicht existenten Spaltenvariablen addieren lassen? Das geht doch bestimmt, oder?

Vielen Dank für eure Hilfe im Voraus.

Gruß
Der Doc

Geändert von Doc_McSky (11.03.2014 um 11:41:27 Uhr)
Mit Zitat antworten
  #2  
Alt 14.03.2014, 11:50:21
Doc_McSky Doc_McSky ist offline
Anfänger
 
Registriert seit: Oct 2007
Beiträge: 49
AW: verschiedene Werte addieren durch Abfrage

Hmh, das scheint offensichtlich ein größeres Problem zu sein, aber ich denke die Fragestellung ist klar, oder?

Dann bin ich doch nicht sooo dumm. :)

Ich hoffe ja doch, das mir noch wer weiterhelfen kann. Ich vermag das ganze natürlich auch anders zu lösen, aber die Lösung gleich in der SQL Abfrage wäre schon obercool. ;)
Mit Zitat antworten
  #3  
Alt 14.03.2014, 19:54:36
Ckaos Ckaos ist offline
Member
 
Registriert seit: Nov 2007
Beiträge: 843
AW: verschiedene Werte addieren durch Abfrage

Hi,

Zitat:
Hmh, das scheint offensichtlich ein größeres Problem zu sein
Nicht wirklich, vielleicht hatte nur keiner zeit/lust ;)

In MySQL wird ein IF so geschrieben
Code:
SELECT IF(SUM(SPALTE)>0,SUM(SPALTE),0) as DeinName FROM ...
Was du da versuchst versteh ich nicht ohne ein CREATE + INSERTS oder einfach mehr infos.
Meine Glaskugel ist gerade in Reparatur ;)

MfG

CKaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
Mit Zitat antworten
  #4  
Alt 15.03.2014, 17:37:10
raiguen raiguen ist offline
Anfänger
 
Registriert seit: Jul 2011
Alter: 72
Beiträge: 30
AW: verschiedene Werte addieren durch Abfrage

Zitat:
Was du da versuchst versteh ich nicht ohne ein CREATE + INSERTS oder einfach mehr infos.
Meine Glaskugel ist gerade in Reparatur ;)
Da braucht's keine Glaskugel, denn die 'Anforderung' ist glasklar:
Wenn im Feld ´payment´ ein 'Failed' eingetragen ist, dann bilde die Summe aus´mc_gross´ und nenne das Ergebnis failsum, ansonsten bilde die Summe aus ´mc_gross´ und nenne es grosssum

Und das geht dann so:

Code:
SELECT 
	SUM(CASE WHEN ´payment´ = 'Failed' THEN ´mc_gross´ END) AS failsum,
	SUM(CASE WHEN ´payment´ <> 'Failed' THEN ´mc_gross´ END) AS grosssum,
	SUM(´mc_fee´) AS feesum 
FROM tabelle 
WHERE ´datecreation´>='2014-01-01' AND ´datecreation´<='2014-12-31'
Wenn in den Ergebnisspalten statt NULL (für kein Ergebnis) eher ein definierter Wert (z.B. 0) stehen soll, dann erweitert man die CASE-Bedingung noch um den ELSE-Zweig:

Code:
SELECT 
	SUM(CASE WHEN ´payment´ = 'Failed' THEN ´mc_gross´ ELSE 0 END) AS failsum,
	SUM(CASE WHEN ´payment´ <> 'Failed' THEN ´mc_gross´ ELSE 0 END) AS grosssum,
	SUM(´mc_fee´) AS feesum 
FROM tabelle 
WHERE ´datecreation´>='2014-01-01' AND ´datecreation´<='2014-12-31'
Gruß Rainer
(der ohne Glaskugel auskommt ;) )
Mit Zitat antworten
  #5  
Alt 15.03.2014, 18:28:24
raiguen raiguen ist offline
Anfänger
 
Registriert seit: Jul 2011
Alter: 72
Beiträge: 30
AW: verschiedene Werte addieren durch Abfrage

Nachtrag:

Man kann auch ohne CASE-WHEN die Abfrage mit der IF()-Funktion notieren:
Code:
	SUM(IF(´payment´ = 'Failed', ´mc_gross´, 0 )) AS failsum,
	SUM(IF(´payment´ <> 'Failed', ´mc_gross´, 0 )) AS grosssum,
Mit Zitat antworten
  #6  
Alt 15.03.2014, 19:20:16
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 76
Beiträge: 4.001
AW: verschiedene Werte addieren durch Abfrage

Zitat:
Zitat von Ckaos Beitrag anzeigen
Nicht wirklich, vielleicht hatte nur keiner zeit/lust ;)
Richtig.
Mit Zitat antworten
Antwort

Stichworte
case, mysql, variablen, vergleich


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
MySQL Abfrage Verschiedene Preise Cyberbob_at_tot MySQLi/PDO/(MySQL) 0 26.03.2010 14:52:48
Doppelte Werte in Array in anderem Array addieren? Floatax PHP für Fortgeschrittene und Experten 5 25.08.2007 23:50:51
Array(s)-Problem. 2 Arrays mit vergleichen und versch. Werte addieren quasimodus PHP Grundlagen 1 30.05.2006 16:49:11
werte addieren Jonny PHP Grundlagen 3 13.01.2004 17:41:32
mySQL Werte beim lesen addieren? Wauzy PHP Grundlagen 9 30.07.2003 13:51:01


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:47:46 Uhr.


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


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