Tabellenwerte zeilenweise vergleichen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Tabellenwerte zeilenweise vergleichen

Re: Tabellenwerte zeilenweise vergleichen

von hlerdo » Mi, 29.09.2010 09:21

hlerdo hat geschrieben:Allerdings wird der erste Zeitraum bei mir ignoriert.
Korrektur: Alle Zeiträume mit mehr als einem Monat zwischen den Ablesungen!!

Aber das hattest Du ja auch schon angedeutet... 8)

Cheers,
HG

Re: Tabellenwerte zeilenweise vergleichen

von hlerdo » Mi, 29.09.2010 09:11

Moin DPunch!
DPunch hat geschrieben:Wenn die Zähler konsequent einmal pro Monat abgelesen werden, kannst Du es auch auf diese Weise probieren:
[...]
Danke für die Antwort! Die hat mich erst auf den Gänsefüßchen-Ansatz gebracht!! :lol:

Allerdings wird der erste Zeitraum bei mir ignoriert. Macht aber nix, denn das kriege ich schon raus. Jetzt kann ich erst mal weitermachen!

Danke für Deine Hilfe!!

Cheers,
HG

Re: Tabellenwerte zeilenweise vergleichen

von hlerdo » Mi, 29.09.2010 09:09

Moin Barlee,
Barlee hat geschrieben:genau der Ansatz ist richtig und wenn Du sogar schon eine fortlaufende ID hast, umso besser.
'Table not found' > schau Dir mal Groß-/Kleinschreibung des Tabellennamen sowie der Spaltennamen an. Ist dort alles ok?
Gänsefüßchen........ Nachdem ich nur Gänsefüßchen dazugepackt habe

Code: Alles auswählen

SELECT  "a"."id", "a"."wasser_ges", ABS("b"."wasser_ges" - "a"."wasser_ges") AS "Verbrauch" FROM "ablesewerte" as "a", "ablesewerte" as "b" where "b"."id"="a"."id"+1 order by "a"."id"
ging alles...

:-D

Danke für Deine Hilfe!!

Cheers,
HG

Re: Tabellenwerte zeilenweise vergleichen

von DPunch » Di, 28.09.2010 22:56

Aloha

Wenn die Zähler konsequent einmal pro Monat abgelesen werden, kannst Du es auch auf diese Weise probieren:

Code: Alles auswählen

SELECT
"a"."Datum" AS "Von",
"b"."Datum" AS "Bis",
DATEDIFF('dd',"a"."Datum","b"."Datum") AS "Tage",
("b"."Zähler1" - "a"."Zähler1") AS "Verbrauch1",
("b"."Zähler2" - "a"."Zähler2") AS "Verbrauch2"
FROM "Tabelle1" AS "a", "Tabelle1" as "b"
WHERE
(MONTH("a"."Datum") = MONTH("b"."Datum")-1 AND YEAR("a"."Datum") = YEAR("b"."Datum"))
	OR
	(MONTH("a"."Datum") = MONTH("b"."Datum")+11 AND YEAR("a"."Datum") = YEAR("b"."Datum")-1)

Re: Tabellenwerte zeilenweise vergleichen

von Barlee » Di, 28.09.2010 19:34

Hallo hlerdo,

genau der Ansatz ist richtig und wenn Du sogar schon eine fortlaufende ID hast, umso besser.
'Table not found' > schau Dir mal Groß-/Kleinschreibung des Tabellennamen sowie der Spaltennamen an. Ist dort alles ok?

Gruß Barlee

Re: Tabellenwerte zeilenweise vergleichen

von hlerdo » Di, 28.09.2010 16:58

Hallo nochmal...

Bei Eingabe von

Code: Alles auswählen

SELECT  a.id, a.wasser_ges, ABS(b.wasser_ges - a.wasser_ges) AS Verbrauch FROM ablesewerte as a, ablesewerte as b where b.id=a.id+1 order by a.id
bekomme ich immer eine Meldung "Table not found" !!???

Order by b.id hat dasselbe Ergebnis...

Tabellenname ist 'ablesewerte' und zwei der vorhandenen Spalten sind 'id' und 'wasser_ges'. :(

Ideen? Wo ist mein (Denk-)Fehler???

Re: Tabellenwerte zeilenweise vergleichen

von hlerdo » Di, 28.09.2010 15:57

Moin moin!

Nach nochmaligem Durchlesen meines ersten Posts muss meine Anfrage etwas präzisieren, glaube ich... :)

Quelltabelle ist wie o.a. diese:

Datum | Zähler1 | Zähler2
01.01.10 | 1000 | 2345
01.02.10 | 1055 | 3456
01.03.10 | 1155 | 4567
...

Reihe 1 (01.01.10) ist die Start-"Ablese". Was ich erstellen will ist so etwas wie dieses hier (die '-' dienen nur der besseren Formatierung):

---Von----|--Bis------| Tage | Verbrauch1 | Verbrauch2
01.01.10 | 01.02.10|-- 31 -|---- 55 ------|---- 111
01.02.10 | 01.03.10|-- 28 -|---- 100 -----|---- 111
...

Das Ganze soll stattfinden in OOBase 3.2.0 mit dem Sun Report Builder als alleinige Extension. Allerdings brauche ich diese Werte nicht in einem Report, sondern als View, damit ich die Daten noch weiter statistisch und abrechnungsmäßig verarbeiten kann. Auch habe ich nicht nur 2 Zähler, sondern eine ganze Menge. Aber mir geht das um den Ansatz dazu... Und der entfleucht sich mir! 8)

Um die Werte EINER Quell-Zeile mathematisch zu manipulieren, geht es mir nicht (so von wegen SELECT A AS A; B AS B; A+B AS C FROM TABLE). Was ich brauche ist das, was zwischen den Zeilen liegt! :?

OOBase hat HSQLDB, wenn ich mich nicht verlesen habe, richtig? Ich habe mit der Syntax Definition (hier) schon probiert durch ein doppel-select immer paarweise die Zeilen auszulesen, aber irgendwie bekomme ich bei Benutzung von LIMIT immer Fehlermeldungen! Schon allein die Anweisung SELECT * FROM <TABLE> LIMIT 0 1 geht daneben...

Und deswegen kratze ich mich hier am Köpfelein und frage um Rat! :lol:

Cheers,
HG

Edit: Habe beim Blättern dies hier gefunden und werde das mal näher betrachten. Aber das scheint der Ansatz zu sein, den ich suche... Mehr später...

Re: Tabellenwerte zeilenweise vergleichen

von Barlee » Do, 23.09.2010 12:17

Hallo hlerdo,

und Du verwendest HSQLDB?
Welchen Ansatz hast Du denn schon versucht? Lass mal sehen

Gruß Barlee

Tabellenwerte zeilenweise vergleichen

von hlerdo » Do, 23.09.2010 11:52

Moin moin!

Folgende Aufgabe:
Habe eine Tabelle mit Ablesewerten (Strom und Wasserzähler), aus denen ich für mehrere Parteien die Verbräuche errechnen muss. Sowas wie dieses:

Datum | Zähler1 | Zähler2
01.01.10 | 1000 | 2345
01.02.10 | 1055 | 3456
01.03.10 | 1155 | 4567
...

Ich will jetzt eine Ansicht mit den Verbräuchen erstellen, brauche also die Differenz einer Tabellenzelle von einer Reihe zur nächsten. Denn diese Differenzen werden noch in anderen Ansichten benötigt. Also ein Bericht ist da nicht mein primärer Ansatz.

Diverse Suchergebnisse mit einigen SQL Statements brachten keine Lösung. :(

Hat da jemand eine Idee oder noch besser: Lösung? 8)

Danke schon mal!!

Cheers,
HG

Nach oben