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

Denksport Ermittlung von Differenzen mit SQL Abfragen

Frage Entwicklung Datenbanken

Mitglied: problemsolver

problemsolver (Level 2) - Jetzt verbinden

02.02.2011 um 12:07 Uhr, 4907 Aufrufe, 3 Kommentare

In einer Tabelle werden die Zählerstände von Druckern zu einem bestimmten Datum und ihrer Seriennummer erfasst. Zusätzlich auch noch der Zählerstandstyp (Farbe, Monochrom, gescannte Seiten). Durch welche Abfrage(n) kann man einen Verbrauch der jeweiligen Drucker in einem bestimmten Zeitraum sichtbar machen.

Hallo zusammen,

zu dem obigen Vorwort noch folgende Detailinformationen:

Die Tabelle hat die Felder
01.
Seriennummer (Des Gerätes) 
02.
Zaehlerstand_Datum (Datum des abgelesenen Zählerstandes) 
03.
Zaehlerstand (absoluter Zählerstandswert) 
04.
Zaehlerbezeichnung (M,F,S)
Egal wie ich es in Access drehe und wende, ich erhalte keine sinnvollen Ergebnisse , wenn ich mit Min, Max, First oder Last bei Datumsangaben arbeite. Ich habe einen Denkfehler, bei dem ich schon seit Tagen hänge und ihr seid meine letzte Hoffnung.

Folgende gedankliche Vorgehensweise hatte ich bisher:
1. Filtern des Zählerstandstyps (m,f oder s für monochrom, farbe oder geScannte Seiten) zusammen mit der Seriennummer
2. Begrenzen dieser Ausgabe auf einen bestimmten Datumsbereich:Zaehlerstand_Datum >= [Anfangsdatum] und <= [Enddatum]
3. Ermitteln des Zählerstandes abhängig von der Seriennummer zu dem MAXDATUM in dem Datumsbereich und zu dem MINDATUM in dem Datumsbereich
4. Ermitteln der Differenz zwischen MAXDATUM und MINDATUM

Mit ist bewusst, dass es ein Leichtes wäre eine Funktionin VB zu programmieren, aber ich möchte es partout als Abfrage mit den gegebenen Funktionen des DBMS realisieren.

Viel Spaß beim Lösen dieser Aufgabe
Ich bin gerne bereit so 3,33€ per PayPal an den Ersten zu zahlen, der es löst sofern euch das anspornt ;-D

Gruß

Markus
Mitglied: MadMax
02.02.2011 um 13:22 Uhr
Hallo Markus,

weil Du es als Denksportaufgabe deklariert hast und ohne konkretes DBMS, habe ich hier mal eine Lösung für den SQL Server. Dabei gehe ich davon aus, daß auch eine eindeutige ID in der Tabelle ist.
01.
select	d.Seriennummer, d.Zaehlerbezeichnung, s.Zaehlerstand as Zaehlerstand_Start, e.Zaehlerstand as Zaehlerstand_Ende, e.Zaehlerstand - s.Zaehlerstand as Verbrauch 
02.
from	(select distinct Seriennummer, Zaehlerbezeichnung from Druckertabelle) d 
03.
	join Druckertabelle s on s.ID = (select top (1) ID from Druckertabelle where Seriennummer = d.Seriennummer and Zaehlerbezeichnung = d.Zaehlerbezeichnung and Zaehlerstand_Datum >= <STARTDATUM> order by Zaehlerstand_Datum) 
04.
	join Druckertabelle e on e.ID = (select top (1) ID from Druckertabelle where Seriennummer = d.Seriennummer and Zaehlerbezeichnung = d.Zaehlerbezeichnung and Zaehlerstand_Datum <= <ENDDATUM> order by Zaehlerstand_Datum desc)
Gruß, Mad Max
Bitte warten ..
Mitglied: problemsolver
02.02.2011 um 14:17 Uhr
Hallo Mad Max,

Vielen Dank für deine Lösung un du hast Recht: Es ist eine Denksportaufgabe, da eigentlich das DBMS keine Rolle spielt.
Falls Du es trotzdem zur Hand hast: Ich würde gerne die Lösung für ACCESS wissen.

Davon ab hast Du natürlich mit deiner Lösung recht, so wie ich das beurteilen kann... Schick mir bitte per PN deine paypal Adresse, damit ich dir das versprochene Geld zukommen lassen kann. Kannst ja im Kommentar antworten, wenn Du es erhalten hast. Ich halte mein Wort...

Gruß

Markus
Bitte warten ..
Mitglied: MadMax
02.02.2011 um 14:42 Uhr
Hai Markus,

Access hab ich hier leider nicht zur Verfügung, erst am Montag wieder, aber ich meine, das SQL in Access ist ziemlich an das vom SQL Server angelehnt. Dementsprechend könnte das auch in Access klappen. Jedenfalls fällt mir nichts auf, was Access nicht auch schlucken sollte.

Zu den 3,33€: Da ich kein Paypal besitze, spende es doch an die Organisation bedürftiger SQL-Programmierer. Oder dem Wirt Deiner Stammkneipe, vielleicht gibt er Dir ja noch ein kleines Bierchen dafür ;)

Gruß, Mad Max
Bitte warten ..
Neuester Wissensbeitrag
Exchange Server

WSUS bietet CU22 für Exchange 2007 SP3 nicht an. EOL Exchange 2007

Tipp von DerWoWusste zum Thema Exchange Server ...

Ähnliche Inhalte
Datenbanken
SQL - Abfragen Nachfrage (2)

Frage von PronMaster zum Thema Datenbanken ...

Datenbanken
2 SQL Abfragen verbinden

Frage von cuxmini zum Thema Datenbanken ...

Datenbanken
gelöst Access 2010 SQL Tabellen Datensätze einfügen (6)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

LAN, WAN, Wireless
gelöst Ermittlung des besten WLAN-Standortes (3)

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

Heiß diskutierte Inhalte
Batch & Shell
gelöst Batch xls nach aktuellem Datum auslesen und email senden (14)

Frage von michi-ffm zum Thema Batch & Shell ...

Windows Server
SBS 2011 Standard virtualisieren (13)

Frage von HeinrichM zum Thema Windows Server ...

Backup
Datensicherung ARCHIV (12)

Frage von fautec56 zum Thema Backup ...

LAN, WAN, Wireless
Per Script auf UniFi-controller zugreifen und WPA2-Key ändern (11)

Frage von Winfried-HH zum Thema LAN, WAN, Wireless ...