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 - Abfragen gestalten

Frage Entwicklung Datenbanken

Mitglied: Dani

Dani (Level 5) - Jetzt verbinden

16.10.2006, aktualisiert 17.10.2006, 4915 Aufrufe, 11 Kommentare

Guten Abend,

ich stehe vor einer kl. Aufgabe. Und zwar benutzen wir hier TrafMeter Lite. Das Programm protokolliert jede Stunde wie viel Pakete raus und wie viele rein kommen (Netzwerkverkehr auf der Karte) sind. Das Ganze wird in einer MySQL Datenbank gespeichert. Nun sind alle Datensätze wie folgt aufgebaut:
01.
     ts                         sent                      recv   
02.
 610110700           32793740             10359517 
Natürlich sollen die Info's dann schön dargestellt werden per Web-Interface. Das habe ich soweit auch schon fast fertig. Es fehlen halt noch die entsprechende SQL-Statments. Abrufbar soll folgendes sein:

1.) nach Jahre => Sprich ich wähle das Jahr aus und bekomme dann daneben alle Monate mit "Gesendete" und "Empfange"
2.) Dann klickt man auf einen Monat => Alle Datensätze von diesem Moant ansehen.
3.) Dann klickt man auf einen Tag => Alle Datensätze von diesem Tag ansehen.

Aufbau der Felder:

TS
Typ: int(11)
Aufbau: die 6 steht für das Jahr. Die nächsten 2 Stellen ist der Monat. Daruf kommt mit 2 Stellen der Tag, dann die Stunde (auch 2 Stellen) und die restlichen 2 sind die Sekunden.


Wie müssten die einzelen Statments für die 3 Anforderungen aussehen?? Schon mal Danke im vorraus...


Gruß
Dani
Mitglied: 6890
16.10.2006 um 20:07 Uhr
hallo,

ich verstehzwar deine frage nicht so richtig aber du könntest die sql funktion substr(ts::text,0,2) für jahr oder substr(ts::text,2,4) für monat oder substr(ts::text,4,6) für tag nutzen.

hoffe ich hab die richtig verstanden.

mfg godlike P
Bitte warten ..
Mitglied: Dani
16.10.2006 um 20:33 Uhr
Also es soll eine TRrafficauswertung gemacht werden. Diese soll dann per PHP verantschaulicht werden.

Wie würde ein Beispiel für 610110700 aussehen, wenn ich den die Stunde ("07") ausgeben lassen möchte. TAbelle heißt t_tml1


Gruß
Dani
Bitte warten ..
Mitglied: 6890
16.10.2006 um 20:41 Uhr
select substr(ts::text,5,7) from t_tml

mfg
Bitte warten ..
Mitglied: Biber
16.10.2006 um 20:44 Uhr
...MySql hab ich grad nicht griffbereit, aber in halbwegs "normalen" SQL sollte es so gehen:

01.
SELECT tstabelle.ts, "200" + mid(cstr(ts),1,1) as year,  mid(cstr(ts),2,2) as month, 
02.
 mid(cstr(ts),4,2) as day,  
03.
 mid(cstr(ts),6,2) +":" + mid(cstr(ts),8,2) as hhmm 
04.
FROM tstabelle;
ts year month ~ day hhmm
610172044 2006 10 17 20:44

Gruß
Biber
[Edit]
@Godlike
...bzw:
select * from t_tml where substr(ts::text,5,7) = '07'
and substr(ts::text,3,5) = '17' and substr(ts::text,1,3) = '10' ....;
[/Edit]
[EditEdit] ... where ts = '610110700' !!!! ..
*lach* ..hab ich auch grad gemerkt....
...where ts >= '610110700' and ts <'610110800' ...
[/EditEdit]
Bitte warten ..
Mitglied: 6890
16.10.2006 um 20:50 Uhr
[Edit]
@Godlike
...bzw:
select * from t_tml where
substr(ts::text,5,7) = '07';
[/Edit]

@ biber

nein! wenn dann:

select substr(ts::text,5,7) from t_tml where ts = '610110700' !!!!

100% ig

mfg
Bitte warten ..
Mitglied: Dani
16.10.2006 um 20:51 Uhr
Hi,
schon mal Danke an euch. Leider bringt er n Fehler:
01.
#1305 - FUNCTION trafmeter.cstr does not exist.
Biber: Ich habe dein Statment 1:1 übernommen!


Gruß
Dani
Bitte warten ..
Mitglied: Biber
16.10.2006 um 20:55 Uhr
@Dani

Sorry, dann kennt MySql die cstr()-Funktionalität zwar, wie godLike ja vorgeführt hat, aber nicht die cStr()- Funktion.

Aber die Mimik ist schon die Gleiche... halt auf die jeweils relevanten Stellen des ts-als-String-Wertes vergleichen bzw. abgreifen.

Gruß
Biber
Bitte warten ..
Mitglied: Dani
16.10.2006 um 21:01 Uhr
Hi,
ich steh heut schon den ganzen Tag aufm Schlauch. Was heißt das genau bzw. was muss ich an deinem Beispiel ändern damit es geht?!


Gruß
Dani
Bitte warten ..
Mitglied: Biber
16.10.2006 um 21:35 Uhr
Moin Dani,

so wie godlike P skizziert hat:

Select * from t_tml
... ...where ts >= '610110700' and ts <'610110800'; ... [ alle Sätze vom 11.Okt 06 von 07h bis 07:59:59]

-oder-
... ...where substr(ts::text,0,3 = '610'; ... [ alle Sätze aus dem Oktober 2006]
-oder-
....

Wenn Du Deine Kriterien so wie oben beschrieben "staffeln" willst, könntest Du bei jeder weiter einschränkenden Auswahl der Anwender eine weitere AND-Bedingung an das Statement dranhängen.

Anfangen mit Jahr:
...where substr(ts::text,0,1 = '6';
-weiter mit Jahr UND Monat:
....where substr(ts::text,0,1 = '6' AND substr(ts::text,1,3 = '10';
etc.

Oder verstehe ich jetzt die Frage miss?

Gruß
Biber
Bitte warten ..
Mitglied: Dani
16.10.2006 um 21:57 Uhr
Hi,
ich hab das mal so gemacht:
01.
SQL-Befehl:   
02.
SELECT * FROM tstabelle WHERE substr(ts, 0, 3)= '610'; 
03.
 
04.
MySQL meldet:   
05.
#1305 - FUNCTION trafmeter.substr does not exist 
ts::text habe ich durch "ts" ersetzt. Ist doch so richtig?!


Gruß
Dani
Bitte warten ..
Mitglied: Dani
17.10.2006 um 17:38 Uhr
Hi,
so jetzt geht es. Der Tag heute war schon besser. *gg*
So geht es jetzt:
01.
Select * from tstabelle where substring(ts,1,1)  like '6%'
Vielen Dank an euch beiden!!

*edit*
So sieht jetzt dein Script aus:
01.
SELECT "2000" + SUBSTRING( ts, 1, 1 ) AS jahr, SUBSTRING( ts, 2, 2 ) AS monat, SUBSTRING( ts, 4, 2 ) AS tag, SUBSTRING( ts, 6, 2 ) + ":" + SUBSTRING( ts, 8, 2 ) AS stunde, recv, sent 
02.
FROM tstabelle 
03.
ORDER BY jahr, monat, tag, stunde 
04.
LIMIT 0 , 30;
Hab noch ein Denkfehler ausgemacht! Bei 2000 wird die 6 dazugezählt.


Gruß
Dani
Bitte warten ..
Ähnliche Inhalte
Datenbanken
MYSQL Abfrage
gelöst Frage von datadexxDatenbanken20 Kommentare

Halo an alle MySQL Spezialisten! Wie kann ich denn am besten folgende Werte abfragen und berechnen? Ausgang für die ...

Datenbanken
MySQL Abfrage für eine Umsatzauswertung kombinieren
gelöst Frage von RedBullmachtfitDatenbanken2 Kommentare

Hallo zusammen, ich möchte Kundenumsätze aus einer MySQL (v5.6, Windows) Datenbank ziehen. Ich komme mit der Struktur jedoch nicht ...

PHP
PHP MySQL Abfrage aus Datenbank
Frage von Lost144PHP12 Kommentare

Hallo, Ich habe in einer Datenbank daten über VM's stehen. Angaben wie hostname,adresse, serverat usw. Wie kann ich in ...

Datenbanken
MYSQL Abfrage bereitet mir Probleme
gelöst Frage von datadexxDatenbanken43 Kommentare

Hallo Leute, ich habe wieder ein Problem mit einer SQL Abfrage. Ich habe eine Tabelle die nennt sich pbooking, ...

Neue Wissensbeiträge
Microsoft Office

Office 2010 Starter erneut auf einer frischen Windows-Version installieren

Tipp von Lochkartenstanzer vor 22 StundenMicrosoft Office8 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 ...

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

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

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