Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

SQL Abfrage

Frage Entwicklung PHP

Mitglied: datadexx

datadexx (Level 1) - Jetzt verbinden

27.01.2013, aktualisiert 28.01.2013, 1830 Aufrufe, 3 Kommentare

Hi Leute,

ich verzweifel mal wieder an einer Abfrage, bzw. an deren Aufbau.

Folgender Ausgang.

Die Tabelle Posten hat die unter anderem die Spalten Gesamt, Unternehmer, TransAnr, status

Die Spalte Gesamt enthält immer die Summe des einzlnen Posten (was dem Kunden für diesen Posten in Rechnung gestellt wird), die Spalte Unternehmer was der Unternehmer bekommt.

Die Spalte TransAnr kann auch den Wert "Gutschrift" enthalten, dann darf der Posten nicht mit in die Berechnung der Summe "Gesamt" einfliessen.

Die Spalte status kann verschiedene INT Werte enthalten, für die Summe der Spalte "Gesamt" darf sie nicht den Wert 3 & 4 haben, für die Summe der Spalte "Unternehmer" nicht den Wert 3 haben.

Ich möchte nun den monatlichen Gewinn ermitteln und diesen ausgeben, meine bisherige Abfrage sieht so aus:
Da fehlt aber die Geschichte mit dem status !=4 für die Berechnung der Summe "Gesamt". Ich denke das wird mit einer if Abfrage für die Summe "Gesamt" gemacht, weiß aber nicht wie.

SELECT MONTH(DATUM) AS Monat,
SUM(Gesamt) - SUM(Unternehmer) AS Summe
FROM posten
WHERE YEAR(DATUM) = YEAR(NOW())
AND status !=3
AND TransAnr !='Gutschrift'
GROUP BY 1

Das ergibt einen Fehler im Ergebnis. Eigentlich brauche ich das Ergebnis (SUMME) von den beiden folgenden Abfragen in einer Abfrage.

SELECT (SUM(Gesamt)) summe FROM posten WHERE status !=3 AND status !=4 AND posten.TransAnr !='Gutschrift' AND YEAR(DATUM) = YEAR(NOW())

- (minus)

SELECT (SUM(Unternehmer)) summe FROM posten WHERE status !=3 AND YEAR(DATUM) = YEAR(NOW())

= Ergebnis netto Gewinn

VIELEN DANK AN ALLE IM VORAUS!!!!
Mitglied: LianenSchwinger
28.01.2013, aktualisiert um 07:56 Uhr
Hallo,

versuch mal folgendes:

01.
SELECT MONTH(p.datum) AS Monat, 
02.
       SUM(IF(p.status != 3 AND p.status != 4, p.gesamt, 0) - 
03.
       SUM(IF(p.status != 3, p.unternehmer, 0) Summe 
04.
FROM POSTEN AS p 
05.
WHERE p.transanr != 'Gutschrift' 
06.
AND YEAR(p.datum) = YEAR(NOW()) 
07.
GROUP BY MONTH(p.datum)
Gruß Jörg
Bitte warten ..
Mitglied: datadexx
28.01.2013 um 16:45 Uhr
Hi Jörg,

nachdem ich die fehlenden Klammern von SUM noch hinzugefügt habe, hat es geklappt.

Vielen Dank dafür!!!
Bitte warten ..
Mitglied: LianenSchwinger
28.01.2013 um 17:24 Uhr
Ups, ist mir das peinlich

Dann warten wir mal auf die nächste Frage.

Gruß Jörg
Bitte warten ..
Ähnliche Inhalte
Datenbanken
gelöst Hilfe bei SQL-Abfrage (5)

Frage von emeriks zum Thema Datenbanken ...

Datenbanken
gelöst SQL-Abfrage mit "kleiner gleich" funktioniert nicht (2)

Frage von derSESO zum Thema Datenbanken ...

Datenbanken
gelöst SQL Abfrage - Ausgabe von Person mit Privat- und Dienstadresse (3)

Frage von CBruns zum Thema Datenbanken ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(2)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
Windows 7
gelöst Lokales Adminprofil defekt (25)

Frage von Yannosch zum Thema Windows 7 ...

Server
gelöst Wie erkennen, dass nur deutsche IPs Zugang zu einer Website haben? (22)

Frage von Coreknabe zum Thema Server ...

LAN, WAN, Wireless
gelöst Statische Routen mit ISC-DHCP Server für Android Devices (22)

Frage von terminator zum Thema LAN, WAN, Wireless ...

Exchange Server
gelöst Migration Exchange 2007 zu 2013 - Public Folder teilweise weg (16)

Frage von Andy1987 zum Thema Exchange Server ...