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

Monatlich Auswertung der letzten 2 Jahre ab heutigem Datum

Frage Entwicklung PHP

Mitglied: 104128

104128 (Level 1)

09.05.2012, aktualisiert 11:23 Uhr, 4468 Aufrufe, 5 Kommentare

Folgendes habe ich vor:

Es liegt eine Datenbank vor mit einem Datumsfeld im Format "YYYY-MM-DD" welches ich auch nicht beeinflussen kann. Ich möchte nun eine automatisierte Auswertung tätigen, bei dem ab heute 2 Jahre zurück gerechnet wird und mir die Zahlen Monatsweise ausgegeben werden.
Als Beispiel:

Ich möchte den Zeitraum 09.05.2010 - 09.05.2012 auswerten. Die Daten aus der Datenbank auslesen ist nicht das Problem - das Problem besteht in der zeitlichen Berechnung.

Die Queries an die MySQL würden lauten:

"SELECT * FROM daten WHERE datum BETWEEN "2010-01-01" AND "2010-01-31"
"SELECT * FROM daten WHERE datum BETWEEN "2010-02-01" AND "2010-02-28"
"SELECT * FROM daten WHERE datum BETWEEN "2010-03-01" AND "2010-02-31"
...

Alternativ könnte ich auch alle Daten der letzten 2 Jahre in ein Array lesen:
"SELECT * FROM daten WHERE datum BETWEEN "2010-01-01" AND "2012-05-09"

nur wie bekomme ich dann immer die einzelnen Monate aus dem Array?

Die Ausgabe sollte dann als Tabelle erfolgen (nachfolgend Beispielspalten):

ID | Jan 10 | Feb 10 | Mrz 10 | April 10 | ... | Mrz 12 | Apr 12 | Mai 12


Hat jemand einen Lösungsansatz für mich?? ;-D


### EDIT ###
Die Datensätze sind nach Tagen gespeichert. Es gibt also z. B. mehrere Datensätze mit "2011-05-05" oder ähnlichem.
Mitglied: napperman
09.05.2012 um 11:36 Uhr
Hallo.

WHERE Datum BETWEEN (year(getdate()-2) AND getdate()
Sollte schonmal das Ergebnis liefern.
Bitte warten ..
Mitglied: 104128
09.05.2012 um 11:57 Uhr
Ich sag ja: Die Daten Datumsmäßig aus der DB bekommen ist nicht das Problem.

Wie aber kann ich, wenn alle Daten in einem Array sind, die einzelnen Monate heraus bekommen?

Mein Array würde so aussehen:

ID -> Datum -> Menge
1 -> 2011-05-05 -> 3
2 -> 2011-05-05 -> 4
3 -> 2011-05-06 -> 1
4 -> 2011-07-15 -> 3

Jetzt möchte ich alle Mengen des Monats 05 zusammenfassen. Alle des Monats 06, alle des Monats 07,...
Bitte warten ..
Mitglied: amax2000
09.05.2012 um 13:07 Uhr
Hi thebrains,

datepart(Datum, mm), datepart(datum,yyyy) dürfte schon beim select dein Freund sein und dann noch SUM(Menge)...hier evtl. noch mit ISNULL transformieren

Hoffe ich zumindest

Grüße,


amax
Bitte warten ..
Mitglied: 104128
09.05.2012 um 15:07 Uhr
Habs jetzt wie folgt gelöst:

1) Aktuelles Datum - 2 Jahre
2) Schleife für die Jahre
2.1) Schleife für die Monate
2.2) Addierung der Mengen für Monat.Jahr
3) Eintragung in eine Tabelle "Zusammenfassung" für jeden einzelnen Monat.Jahr

Der zweite Schritt:

1) Aktuelles Datum - 2 Jahre
2) SELECT an die DB um die Daten der letzten 2 Jahre auslesen
-> diese sind bereits Monatsweise gespeichert
3) Speicherung in 2 Arrays (Mengen und Zeit)
4) Ausgabe als Liniendiagramm

Ich muss dazu sagen, dass es um über 9 Mio Datenbankeinträge geht. Eine Aktualisierung der Daten findet jede Nacht statt, da täglich neue Daten hinzukommen.
Gerade läuft mein Script für die Zusammenfassung. Der lief heut moin schon einmal und hatte über 45 Minuten benötigt. Allerdings ist die Performance nach der Zusammenfassung wesentlich schneller beim Abruf der Monatsdaten als vorher die Summierung der einzelnenen Tage zu Monaten + anschließender Ausgabe.

Trotzdem danke für die Denkanstöße, hat mir auf jeden Fall geholfen

lg, Marc
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Ordner Umbenennen +heutiges Datum
gelöst Frage von ahsendenBatch & Shell12 Kommentare

Hallo zusammen, Ich muss für eine tagliche Außerhaussicherrung auf Externe Festplatten immer folgendes manuell ausführen: Löschen des Ordners "Backup-extern_20170201" ...

Microsoft Office
Excel Makro - Button "Springe zu Zeile mit heutigem Datum"
gelöst Frage von hannsgmaulwurfMicrosoft Office5 Kommentare

Hallo zusammen, heute wende ich mich mal mit einer Excel Frage an euch. Es geht um Excel 2010 auf ...

VB for Applications
Excel2010-Makro um ein Wert dem heutigen Datum zuzuordnen
gelöst Frage von SpikeeeVB for Applications4 Kommentare

Hallo Liebe Gemeinde! Ich möchte eine Excel-Tabelle erstellen, um die Dauer des Supports für verschiedene Bereiche festhalten zu können. ...

Datenbanken
Bilder mit heutigem Datum aus Access-Datenbank exportieren
Frage von janelsaesserDatenbanken1 Kommentar

Hallo zusammen, ich habe eine Ausweißsoftware welche auf eine Access Datenbank (.mdb) zugreift. Die Software speichert auch die Bilder ...

Neue Wissensbeiträge
Microsoft Office

Office 2010 Starter erneut auf einer frischen Windows-Version installieren

Tipp von Lochkartenstanzer vor 1 TagMicrosoft Office9 Kommentare

Moin, vor ein paar Tagen schlug bei mir ein Kunde auf, der sein Widnows 7 geschrottet und es inklusive ...

Datenbanken

Upgrade MongoDB 3.4 auf 3.6

Erfahrungsbericht von Frank vor 1 TagDatenbanken

Seit kurzem gibt es das 3.6 Update für die MongoDB: Sicherheit, das Sortieren, Aggregation und auch die Performance wurde ...

SAN, NAS, DAS

Backdoor Zugang und Upload-Bug in vielen Western Digital MyCloud Geräten

Information von Frank vor 1 TagSAN, NAS, DAS2 Kommentare

James Bercegay von der Firma Gulftech hat die Fehler an Western Digital gemeldet und das Unternehmen stellt bereits ein ...

Microsoft Office

Outlook 2016 - Beim Weiterleiten keine PDF Anhänge mehr - KB4011626 entfernen

Erfahrungsbericht von Deepsys vor 1 TagMicrosoft Office3 Kommentare

Wenn ihr feststellt das ihr beim Weiterleiten von E-Mails keine PDF Anhänge mehr versendent, dann dankt Microsoft. Diese tolle ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Drucker und Scanner
Gesucht DIN A3 Drucker
Frage von NebellichtDrucker und Scanner15 Kommentare

Hallo, ich möchte einen neuen DIN A3 Drucker kaufen. Um ab und zu, ca. 1 mal die Woche Farbausdrucke ...

iOS
Einladung vom iphone kalender
Frage von jensgebkeniOS15 Kommentare

Hallo Gemeinschaft, folgendes Problem - immer wenn ich von meinem Iphone einen Termin einztrage und diesem Termin Teilnehmer zuweise, ...

Windows Netzwerk
Drucker isolieren in Windows Domäne
gelöst Frage von lcer00Windows Netzwerk14 Kommentare

Hallo zusammen, habe eine Windows-AD (2012R2) in der es einen Druckerserver gibt. Mittlerweile verliere ich das Vertrauen in die ...