Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Summe aus Min und Max Wert in einer Abfrage möglich?

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von ichmagDatenbanken, 9 Dezember 2020.

  1. ichmagDatenbanken

    ichmagDatenbanken Neuer Benutzer

    Hallo Datenbankforum,

    ich habe eine kurze Frage, ob mein Vorhaben mit einer Abfrage so machbar ist.

    Aufgabe, Summe aus ermittelten Tagesmaximum und Tagesminimun Wert errechnen.
    Mein query sieht so aus, dieser funktioniert jedoch nicht: (Datenfelder sind Double mit mehreren Nachkommastellen)

    select sum(max(e_data_11) - min(e_data_11)) from data_history where date_clear ='2020-12-09'

    Wenn ich das sum entferne bekomme ich die min und max werte, also soweit klappt die Abfrage.
    Habt Ihr iene Idee?
     
  2. BerndB

    BerndB Datenbank-Guru

    Was erwartest du wenn du nur einen tag auswertest ?
     
  3. ichmagDatenbanken

    ichmagDatenbanken Neuer Benutzer

    Hallo,
    ich verstehe die Frage nicht ganz, es ist so das ich alle 10 Minuten Werte in die Datenbank bekomme. Aus diesen Werten (Stromverbrauch meines Haushaltes) möchte ich den Gesamtverbrauch bis zum Zeitpunkt des Abfragens ermitteln. Da der Wert ja kontinuierlich ansteigt hole ich mir vom Tag den kleinsten und größten Wert und Subtrahiere den.

    Aktuell habe ich das so gelöst das ich mir min und max auslese und PHP die kleine Berechnung durchführt um das im Webportal anzeigt, aber ich bin ein Freund von einfacheren Lösungen, und evtl kann die Datenbank das ja.
     
  4. BerndB

    BerndB Datenbank-Guru

    Wenn ich dich richtig verstanden habe , dann sollte sowas richtig sein:

    Code:
    select sum(e_data_11) - min(e_data_11)  AS result from data_history where date_clear ='2020-12-09'
    Mit SUM(e_data_11) holst du die Summer aller Werte von diesem Tag und subtrahierst dann den kleinsten Wert mit MIN(e_data_11).
     
  5. BerndB

    BerndB Datenbank-Guru

    Sorry, wenn du den ges, Verbrauch immer hast must du doch nur den min Wert vom max Wert abziehen.
    Dann wärs das

    Code:
    select MAX(e_data_11) - MIN(e_data_11)  AS result from data_history where date_clear ='2020-12-09'
     
    ichmagDatenbanken gefällt das.
  6. ichmagDatenbanken

    ichmagDatenbanken Neuer Benutzer

    Hallo,
    ne das ist es leider nicht, da kommt ein immens großer Wert zurück. Hm, ich formuliere es mal andersrum:
    ich hole den Wert von 0:00 Uhr morgens (der MIN Wert) = 30 khW
    dann den Wert von Abends z.b. 17:30 Uhr (der Max Wert) = 32,125 kWh

    Dann ziehe ich 30 kwh von den 32,125 kwh ab und habe 2,125 kwh, dann weiß ich was mein Haus an diesen Tag verbrauch hat.
    Da mein Smartmeter nur den Gesamtverbrauch übermittelt (alle 10 minuten) dieser Weg.....
     
  7. ichmagDatenbanken

    ichmagDatenbanken Neuer Benutzer

    Jaaaaaa, genau, während ich geschrieben habe kam deine Antwort, Genau das, so funktioniert es...... Geil. Perfekt, vielen Dank.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden