Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: eneg79 am Februar 19, 2021, 12:19:44

Titel: Abfrage für ein Jahr
Beitrag von: eneg79 am Februar 19, 2021, 12:19:44
Hallo an Alle,

schön das es dieses Forum gibt. Bei so einigen Problemen hat das schon sehr geholfen nur passiv mitzulesen.

Nun habe ich aber ein Problem, da finde ich nirgends im Netz eine Lösung.

In meiner Datenbank erfasse ich jeden Monat zum 1. meine Zählerstände.
Ich habe mir auch eine Parameterabfrage gebastelt, die mich vorher fragt, welches Jahr ich auswerten möchte.
Das funktioniert soweit ganz gut, nur fehlt mir der komplette Dezember.
Mir fehlt ja quasi der Wert vom 31.12. den erfasse ich in meiner Tabelle ja unter 01.01. des nächsten Jahres.

Ich weiß ich könnte die Zählerstände einmal als 31.12. und einmal als 01.01. erfassen.
Aber ich bin mir sicher da gibt es eine elegantere Lösung.

Ich freue mich auf Antwort und bedanke mich schon vorab.

Gruß Andreas
Titel: Re: Abfrage für ein Jahr
Beitrag von: MzKlMu am Februar 19, 2021, 13:03:46
Hallo,
als einfachste Lösung:
Lege in einer Abfare ein berechnetes Feld an:
AbrechnungsDatum: ErfassungsDatum - 1Zieht vom Datum einen Tag ab, aus dem 01.01.2021 wird dann der 31.12.2020.
Deine Auswertung machst Du dann mit dem berechneten Feld.
Der Vorschlag setzt aber voraus, dass das ErfassungsDatum immer am 1. eines Monats ist.
Titel: Re: Abfrage für ein Jahr
Beitrag von: eneg79 am Februar 19, 2021, 13:11:29
Danke für die schnelle Antwort.

Darüber hatte ich auch schon nachgedacht, nur verschiebt das mein Problem ja an den Jahresanfang.

Dadurch wird ja aus dem 01.01. des abgefragten Jahres der 31.12. des Vorjahres und mir fehlen dann die Werte aus dem Januar.

:-\
Titel: Re: Abfrage für ein Jahr
Beitrag von: MzKlMu am Februar 19, 2021, 13:28:02
Hallo,
versteh ich nicht, wiso soll da der Januar fehlen. Du verschiebst genau ein Tage,, aus den 1.2. wird der 31.1.

Siehe Bild:
Titel: Re: Abfrage für ein Jahr
Beitrag von: eneg79 am Februar 19, 2021, 13:46:30
na damit wird doch mein Zählerstand vom 01.01.20 zum Zählerstand vom 31.12.19.
Somit fehlt doch in meiner Abfrage der Verbrauch aus Januar, weil sie erst mit dem Zählerstand vom 01.02.20 (Buchungsdatum) bzw. 31.01.20 (Abrechnungsdatum) beginnt.

Vorher fehlte mein Verbrauch aus Dezember, nun der aus Januar.

Ich möchte quasi eine Abfrage vom 01.01.2020 - 31.12.2020 und das nur mit Ablesedaten vom 1. eines jeden Monats.
Titel: Re: Abfrage für ein Jahr
Beitrag von: MzKlMu am Februar 19, 2021, 13:50:06
Hallo,
verstehe ich immer noch nicht.
Zitat von: undefinedSomit fehlt doch in meiner Abfrage der Verbrauch aus Januar,
Der Verbrauch Januar hast Du doch mit dem 1.2. erfasst.

Siehe mein Bild, da sind alle 12 Monate des Jahres 2020 enthalten, oder siehst Du einen fehlenden Januar?
Titel: Re: Abfrage für ein Jahr
Beitrag von: ebs17 am Februar 19, 2021, 14:06:03
ZitatIch möchte quasi eine Abfrage vom 01.01.2020 - 31.12.2020 und das nur mit Ablesedaten vom 1. eines jeden Monats.
Nein, genauer möchtest Du eine Abfrage vom 01.01.Jahr bis 01.01.Jahr + 1, und genau so müsste man das Filterkriterium setzen.
Titel: Re: Abfrage für ein Jahr
Beitrag von: eneg79 am Februar 19, 2021, 15:08:04
Okay, ich hole jetzt mal aus, vllt. ist mein Problem ja nicht das Datum, sondern das ich meine Abfrage zu kompliziert gestalte.

Ich erfasse an jedem 1. des Monats meinen Zählerstand vom Wechselrichter in einer Tabelle.
In der Abfrage ermittle ich neben dem Zählerstand (aktuell) den Zählerstand aus Vormonat mittels:
Zählerstand Vormonat WR: DomWert("[Zählerstand Wechselrichter]";"tblZählerstanderfassung";"[Ablese-ID] = " & [Ablese-ID]-1)
Aus diesen beiden Werten errechne ich meine Erzeugung in kW/h.
Siehe Anhang...

Wie du siehst wurden im Januar 481kW/h erzeugt und im Dezember 395kW/h.
Vorher hatte ich mit meiner Parameterabfrage Jahr([Ablesedatum]) das Problem das er die 395kW/h nicht genommen hat, nach deiner Variante Parameterabfrage Jahr([Auswertungsdatum]) nimmt er die 481kW/h nicht.
Titel: Re: Abfrage für ein Jahr
Beitrag von: eneg79 am Februar 19, 2021, 15:08:46
Zitat von: ebs17 am Februar 19, 2021, 14:06:03Nein, genauer möchtest Du eine Abfrage vom 01.01.Jahr bis 01.01.Jahr + 1, und genau so müsste man das Filterkriterium setzen.

Okay, wie stelle ich das an?
Titel: Re: Abfrage für ein Jahr
Beitrag von: ebs17 am Februar 19, 2021, 17:31:22
Das wäre jetzt eine (richtige) Parameterabfrage:
PARAMETERS
   parJahr INT
;
SELECT
   *
FROM
   TabelleX
WHERE
   Datumsfeld BETWEEN DateSerial(parJahr, 1, 1)
      AND
   DateSerial(parJahr + 1, 1, 1)
Titel: Re: Abfrage für ein Jahr
Beitrag von: eneg79 am Februar 22, 2021, 08:33:17
Zitat von: ebs17 am Februar 19, 2021, 17:31:22Das wäre jetzt eine (richtige) Parameterabfrage:
PARAMETERS
   parJahr INT
;
SELECT
   *
FROM
   TabelleX
WHERE
   Datumsfeld BETWEEN DateSerial(parJahr, 1, 1)
      AND
   DateSerial(parJahr + 1, 1, 1)
Titel: Re: Abfrage für ein Jahr
Beitrag von: eneg79 am Februar 22, 2021, 08:35:39
Hallo Eberhard,

genau das hatte ich gesucht, damit habe ich es tatsächlich gelöst bekommen, musste es nur noch leicht modifizieren.

Vielen Vielen Dank.

Aber auch vielen Dank Dir Klaus, ich glaube auch mit deinem Ansatz hätte ich mit ein wenig Modifikation eine Lösung gefunden.