Ich habe mal wieder eine knifflige Angelegenheit.
Für Statistiken habe ich mehrere Abfragen und Berichte erstellt, die funktionieren.
Ich kann also z.B. die Mengen eines bestimmten Kunden des (gesamten) Vorjahres und seine Mengen bis heute aufführen und prozentual vergleichen.
Ich kann in einem zweiten Bericht die Mengen des Kunden für den gleichen Zeitraum, den ich definieren kann, ausgeben.
Nun habe ich mir überlegt, dass es ganz praktisch wäre, hinter dem Kundennamen sowohl die Menge des gesamten Vorjahres, die Menge des Vorjahres im gleichen Zeitraum wie 2012 und die bisherigen Mengen 2012 nebeneinander auszugeben, ich weiß aber nicht, wie das klappen könnte.
Folgende Tabellen und Felder setze ich ein:
Tabelle: Feldname:
Kunden ksort
Statistik MengeVorjahr
Statistik MengeAktJahr
Rmon rmon (hier wird bei den Datensätzen der Liefermonat mit 01, 02, 03, usw. angegeben
In meinen bisherigen Abfragen / Berichten wird dann als Kriterium bei RMON gefragt: >=[von Monat: ] Und <=[bis Monat: ]
Mein Bericht soll dann so aussehen:
Kunde Menge 2011 Menge 01-07/2011 Menge 01-07/2012
Geht das überhaupt mit den oben definierten Feldern?
Axel
ZitatGeht das überhaupt mit den oben definierten Feldern?
Ich hätte keine Vorstellung, wie man aus einer MengeVorjahr Mengen von einzelnen Monaten ermittelt.
Eine vorstellbare Tabelle hätte die Felder KundeID, Menge, Lieferdatum zzgl. ID.
Daraus kann man die einzelnen Abfragen für gezielte Zeiträume erstellen und diese dann zusammenstellen, z.B.
' qryA (01-07/2011)
SELECT KundeID, Sum(Menge) AS MengeA
FROM Tabelle
WHERE Lieferdatum Between DateSerial(Year(Date())-1, 1, 1)
AND DateSerial(Year(Date())-1, 7, 31)
GROUP BY KundeID
' qryB (01-07/2012)
' nur Datumsfilter anders
WHERE Lieferdatum Between DateSerial(Year(Date()), 1, 1)
AND DateSerial(Year(Date()), 7, 31)
' qryC (Menge 2011)
' nur Datumsfilter anders
WHERE Lieferdatum Between DateSerial(Year(Date())-1, 1, 1)
AND DateSerial(Year(Date())-1, 12, 31)Diese Teilabfragen kann man zusammenfassen:
SELECT KundeID, MengeA, MengeB, MengeC
FROM (qryA INNER JOIN qryB ON qryA.KundeID = qryB.KundeID)
INNER JOIN qryC ON qryA.KundeID = qryC.KundeIDMfGA
ebs