Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Mysql Berechnung

Frage Entwicklung PHP

Mitglied: datadexx

datadexx (Level 1) - Jetzt verbinden

25.07.2013, aktualisiert 20.11.2014, 1732 Aufrufe, 5 Kommentare

Hallo MySQL Profis,

es wäre toll wenn mir jemand behilflich bei einer Abfrage sein könnte.

In der Abfrage soll folgendes noch berechnet werden:

((summe1-summe2)-summe3) *100 / summe1 as prozent

SELECT
SUM(IF(status != 3 AND status != 4 AND transanr != 'Gutschrift' AND DATUM BETWEEN '2013-01-01' AND '2013-12-31' , gesamt, 0)) as summe1,

SUM(IF(status != 3 AND DATUM BETWEEN '2013-01-01' AND '2013-12-31' , untern_verguetung, 0)) as summe2,

SUM(IF(status!=3 AND transanr='Gutschrift' AND DATUM BETWEEN '2013-01-01' AND '2013-12-31',gesamt,0)) as summe3

FROM posten

Könnte mir da bitte jemand auf die Sprünge helfen.

Vielen Dank jetzt schon mal.

datadexx
Mitglied: nxclass
25.07.2013, aktualisiert um 18:15 Uhr
FROM posten
... die SUM Funktion ist natürlich abhängig von der Gruppierung und Filterung und kann so leider nicht verwendet werden.
ABER: Du kannst mit 3 Abfragen über die selbe Tabelle arbeiten und davon die Ergebnisse verwenden.

Ich empfehle zuerst über Datum zu filtern, danach die 3 summen davon zu bilden, und dann die Berechnung auszuführen. Dann könnte man noch überlegen das Ergebnis irgendwo zu cachen, da diese Berechnung rel. aufwendig ist.
Bitte warten ..
Mitglied: nxclass
25.07.2013, aktualisiert um 18:20 Uhr
reicht da nicht einfach ein:
01.
SELECT *, ((summe1-summe2)-summe3) *100 / summe1 as prozent FROM ( 
02.
SELECT 
03.
SUM(IF(status != 3 AND status != 4 AND transanr != 'Gutschrift' AND DATUM BETWEEN '2013-01-01' AND '2013-12-31' , gesamt, 0)) as summe1, 
04.
SUM(IF(status != 3 AND DATUM BETWEEN '2013-01-01' AND '2013-12-31' , untern_verguetung, 0)) as summe2, 
05.
SUM(IF(status!=3 AND transanr='Gutschrift' AND DATUM BETWEEN '2013-01-01' AND '2013-12-31',gesamt,0)) as summe3 
06.
FROM posten  
07.
)
.. in etwa
Bitte warten ..
Mitglied: Biber
25.07.2013, aktualisiert um 22:21 Uhr
Moin nxclass,

in Prinzip bin ich auf deiner Seite, aber...*lach*

-> da insgesamt die Tabelle "posten" nicht auf das Jahr 2013 eingeschränkt wird, berechnest du den ganzen Mist bis rückwärts zum Jahr 1972, wenn die genug Daten haben. Machst also immer einen Fullselect auf die Detaildaten.

-> aber keine Angst, der hört vorher auf, weil in den 1972er Datensätzen auch die Pseudo-Spatle "summe1" den Wert 0 hat.

Und da grätscht die Engine mit DIV/0 ab bei der Prozentberechnung.

Grüße
Biber
Bitte warten ..
Mitglied: datadexx
25.07.2013 um 20:45 Uhr
So hab ich das bereits gehabt, aber dann bekomme ich nen error. Unknown column summeX

Aber schon mal danke für eure Hilfe!!!
Bitte warten ..
Mitglied: Biber
LÖSUNG 25.07.2013, aktualisiert 20.11.2014
Moin datadexx,

Zitat von datadexx:
So hab ich das bereits gehabt, aber dann bekomme ich nen error. Unknown column summeX
Na ja, ähneln werden sich unsere Statements schon alle mehr oder weniger, aber aus deinem Eröffnungspost geht ja nun auch nicht hervor, wie dein konkretes Statement und wie die exakte Fehlermeldung aussieht.

Wenn bei dir ein Feld "SummeX" angemeckert wird, dann kann es nicht nxclass' Statement gewesen sein, was du abgeschickt hast.

Aber nochmal zum Prinzip: Es wurde bereits angesprochen, das du möglichst nicht 3x einen Select auf die "Posten"-Tabelle machen solltest, um drei Summen zu bilden.
Richtiger Weg ist die Pivotierung mit irgendwelchen IIF() oder CASE WHEN-Konstrukten (was so die jeweilige Datenbank anbietet).

Ein nur einmaliger Zugriff auf "Posten" wäre dann sinnvoll, wenn da wirklich entscheidend mehr Datensätze drin sind als die des Jahres 2013 (also z.B. wirklich die letzten paar Jahre) und wenn dort auch nur unaggregierte Detaildaten (tagesgenaue Buchungssätze) vorhanden sind.

Wenn es in diese Richtung geht, dann würde ich die 4 relevanten Felder für die Abfrage mit einem Subselect rausholen

01.
... 
02.
SELECT SUM(IIF(status != 4 AND transanr != 'Gutschrift' , gesamt, 0) ) as summe1 
03.
  , SUM(untern_verguetung) as summe2 
04.
  , SUM(IIF(transanr='Gutschrift', gesamt, 0) ) as summe3 
05.
FROM (  
06.
   SELECT status, transanr, gesamt, untern_verguetung  
07.
   FROM posten 
08.
   WHERE DATUM BETWEEN '2013-01-01' AND '2013-12-31' 
09.
   AND status != 3 -- trifft für alle Summen zu 
10.
)
... und wenn dieses Select klappt, dann kann aussen drum noch ein weiteres äüßeres "Select From" mit Summe1, summe2 etc wie oben von nxclass gepostet.
Aber erstmal muss doch dieses hier verifiziert werden

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Server-Hardware
Klimaanlagen Berechnung
gelöst Frage von TheOnlyOneServer-Hardware7 Kommentare

Hallo zusammen, wir betreiben seit 2008 ein Rechenzentrum das damals von einer externen Firma geplant wurde. Hierbei stehen sich ...

Ausbildung
Berechnung Digitalisierung
gelöst Frage von AzubineAusbildung9 Kommentare

Guten Morgen, ich befinde mich in Umschulung zur FISI und werde meine Prüfung diesen Winter ablegen. Im Rahmen der ...

Microsoft Office
Berechnung KW in Excel
gelöst Frage von TjelvarMicrosoft Office1 Kommentar

Hallo Zusammen, ich wurde heute vom kfm. Leiter meines Arbeitgebers darauf hingewiesen, dass Excel bei der Berechnung der KW ...

Netzwerkgrundlagen
VLSM - Überspringen mancher Netze bei der Berechnung
gelöst Frage von agowa338Netzwerkgrundlagen10 Kommentare

Hallo alle zusammen, Ich bin seit längerem an einer VLSM Übung, ich habe auch schon einiges davon gelöst. Das ...

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 6 StundenViren und Trojaner1 Kommentar

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 10 StundenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Vmware
DOS 6.22 in VMWare mit CD-ROM
gelöst Frage von hesperVmware8 Kommentare

Hallo zusammen! Ich hab ein saublödes Problem. Es ist eine VMWare mit DOS 6.22 zu erstellen auf dem ein ...

Cloud-Dienste
PIM als SaaS Nutzungsgebühr
Frage von vanTastCloud-Dienste8 Kommentare

Moin, wir haben uns ein PIM (Product Information Management) nach unseren Ansprüchen für viel Geld als SaaS-Lösung bauen lassen. ...