Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

Denksport Ermittlung von Differenzen mit SQL Abfragen

Frage Entwicklung Datenbanken

Mitglied: problemsolver

problemsolver (Level 2) - Jetzt verbinden

02.02.2011 um 12:07 Uhr, 5065 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 ..
Ähnliche Inhalte
Datenbanken
gelöst SQL Abfrage mit Visual Studio (5)

Frage von specialuser zum Thema Datenbanken ...

Datenbanken
SQL - Abfragen Nachfrage (2)

Frage von PronMaster zum Thema Datenbanken ...

Datenbanken
gelöst SQL-Abfrage mit MAX() (9)

Frage von FrAmEr zum Thema Datenbanken ...

Datenbanken
gelöst SQL-Abfrage - DISTINCT - letztes Datum (3)

Frage von emeriks zum Thema Datenbanken ...

Neue Wissensbeiträge
Viren und Trojaner

FinFisher: Internetprovider schieben Spitzelopfern Malware unter

(1)

Information von kaiand1 zum Thema Viren und Trojaner ...

Humor (lol)

Wo ist der Fehler auf dem Bild?

(17)

Information von the-buccaneer zum Thema Humor (lol) ...

Windows Update

Offenbar erneutes MS-Update mit Fehlerschleife (2012 R2)

Information von VGem-e zum Thema Windows Update ...

Heiß diskutierte Inhalte
Lizenzierung
Programm soll in verschiedenen Versionen lizenziert sein (20)

Frage von Yanmai zum Thema Lizenzierung ...

Humor (lol)
Wo ist der Fehler auf dem Bild? (17)

Information von the-buccaneer zum Thema Humor (lol) ...

Windows Userverwaltung
Ordner-Rechte für Dom.Admin einschränken? (13)

Frage von kilobyte zum Thema Windows Userverwaltung ...