ACC2000: Zeitreihe Monat / Jahr

25/06/2009 - 14:36 von Hessler, Michael | Report spam
Hallo,
vorhanden sind folgende Tabellen:
T_Prod --> (Produktion)
T_Pruef --> (Prüfung)
T_PruefProbe.

In T_Prod werden zu einer Stückfertigung (Beispiel: Keksdosen)
Datum/Uhrzeit und weitere Daten gespeichert, insbesondere die
Artikel-Nummer (Butterkekse, Schokekekse, etc) auf Grundlage einer
Tabelle T_Art. Ausgewàhlte Stücke (Keksdosen, jede 1000-ste) werden
geprüft, dabei wird ein Datensatz in T_Pruefung angelegt. Die Prüfung
erfolgt an 1..n Teilstücken (Keksen), zu jedem Teilstück wird ein
Datensatz in T_PruefungProben angelegt.

Nun soll der Mittelwert einzelner Eigenschaften je Monat für jeden
Artikel angegeben werden:
SELECT
T_Art.Artnr, Year([Datum]) AS Jahr,
Month([Datum]) AS Monat,
Avg([Messwert]) AS MittelMess,
FROM (T_PROD
RIGHT JOIN (T_Pruef LEFT JOIN T_PruefProbe
ON T_Pruef.[idPruef] = T_PruefProbe.[idPruef])
ON T_PROD.[idStueck] = T_Pruef.[idStueck])
LEFT JOIN T_ART ON T_PROD.[ArtNr] = T_ART.[ArtNr]
GROUP BY T_Art.Artnr, Year([Datum]), Month([Datum])
ORDER BY T_Art.Artnr, Year([Datum]) DESC , Month([Datum]) DESC;

Mein Problem: Nicht jeder Artikel wird in jedem Monat hergestellt /
geprüft. Daher hat die Liste Lücken:
ArtNr Jahr Monat MittelMess

Kekse 2009 06 55
Kekse 2009 04 44
Kekse 2009 03 45
Butterkekse 2009 05 32
Butterkekse 2009 03 33
Butterkekse 2009 02 42

Es soll für einen Report aber so aussehen:
ArtNr Jahr Monat MittelMess

Kekse 2009 06 55
Kekse 2009 05
Kekse 2009 04 44
Kekse 2009 03 45
Kekse 2009 02
Butterkekse 2009 06
Butterkekse 2009 05 32
Butterkekse 2009 04
Butterkekse 2009 03 33
Butterkekse 2009 02 42

Wie kann ich also für jeden Monat (dieses Jahres oder die letzten 12
Monate) eine Zeile in der Abfrage erzwingen?

Danke.
Michael
 

Lesen sie die antworten

#1 Peter Doering
25/06/2009 - 14:56 | Warnen spam
Hallo,

Hessler, Michael wrote:

vorhanden sind folgende Tabellen:
T_Prod --> (Produktion)
T_Pruef --> (Prüfung)
T_PruefProbe.
[...]
Wie kann ich also für jeden Monat (dieses Jahres oder die letzten 12
Monate) eine Zeile in der Abfrage erzwingen?



Ich wuerde eine Datumstabelle anlegen, die den gewuenschten Zeitraum
umfasst und sie per Left Join mit der Tabelle, aus der der Messwert kommt,
verknuepfen.

Gruss - Peter

Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com

Ähnliche fragen