Wie vergleiche ich Zeilen?

Hallo Freunde!

Leider habe ich nur rudimentäre SQL-Kenntnisse und möchte trotzdem folgende Access-Aufgabe lösen. Gegeben ist eine Tabelle:

ZEITRAUM ZAHL
01-2010 343
02-2010 467
03-2010 324
04-2010 290

Ich möchte nun die prozentuale Veränderung der Zahl von Zeitraum zu Zeitraum berechnen lassen. Leider habe ich überhaupt keinen Plan, wie das geht. :frowning: Helft ihr mir?

Hallo Freund!

Leider habe ich nur rudimentäre SQL-Kenntnisse und möchte
trotzdem folgende Access-Aufgabe lösen. Gegeben ist eine
Tabelle:

ZEITRAUM ZAHL
01-2010 343
02-2010 467
03-2010 324
04-2010 290

Ich möchte nun die prozentuale Veränderung der Zahl von
Zeitraum zu Zeitraum berechnen lassen. Leider habe ich
überhaupt keinen Plan, wie das geht. :frowning: Helft ihr mir?

Guten Tag,

Das würde ich gerne, aber nur wenn Du den „Zeitraum“ so darstellst:

201001
201002
.
.
201012
.
.

und dabei möglichst als Zahl und nicht als Text,

oder Du eine (andere) fortlaufende Nr (Zahl) für den Zeitraum in der Tabelle hast.

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Moin, Freundin :smile:

Leider habe ich nur rudimentäre SQL-Kenntnisse

hm

und möchte trotzdem folgende Access-Aufgabe lösen.

SQL stellt Mittel bereit, um auf Mengen von Sätzen zuzugreifen oder anders gesagt, die Trefferliste wird immer durch eine Mengenoperation erzeugt. Wenn also 2 Sätze bereitgestellt werden sollen, dann müssen sie ein Kriterium gemeinsam haben. Das sehe ich im Beispiel absolut nicht. Manche DBMS haben spezielle Funktionen für solche Problem, Access gehört aber nicht dazu.

Access ohne VBA ist wie ein Auto ohne Reifen (© by Franz). Mit VBA geht das ganz einfach, indem ein Recordset erzeugt wird und per Schleife jeweils 2 Sätze verarbeitet werden, sinnvolle Sortierung vorausgesetzt.

Gruß Ralf

Moin, Franz,

[ot] was haben wir eigentlich an uns, dass man uns links liegen lässt - stinken wir aus dem Maul? Sowas geht mir echt auf die Nüsse, erst Probleme wälzen und dann abtauchen.

Zur Sache: Was hast Du da für einen Trick auf Lager? Evtl. könnte ich dann meinen ersten Beitrag wieder löschen :smile:))

Abgesehen davon scheint mir die Datumsformatierung (sieht nach US aus) kein Drama zu sein, Hauptsache, es ist kein Text.

Gruß Ralf

Hallo Ralf,

[ot] was haben wir eigentlich an uns, dass man uns links
liegen lässt - stinken wir aus dem Maul? Sowas geht mir echt
auf die Nüsse, erst Probleme wälzen und dann abtauchen.

ist hier im Forum doch arg verbreitet… Viele Threats werden nicht abgeschlossen durch ein Feedback.

Zur Sache: Was hast Du da für einen Trick auf Lager? Evtl.
könnte ich dann meinen ersten Beitrag wieder löschen :smile:))

Mhmm, Trick habe ich keinen, es braucht nur ein Feld, nach dem man datumsmäßig aufsteigend sortieren kann. Dann kann man den „vorhergehenden“ DS mit einer Unterabfrage (oder Dmax) auslesen und die Differnz bilden.

Abgesehen davon scheint mir die Datumsformatierung (sieht nach
US aus) kein Drama zu sein, Hauptsache, es ist kein Text.

in der SQL ist keine Formatierung eines Datumsfeldes nötig, solange das Feld direkt aus der Tabelle stammt (und solange gibts es auch kein „US“-Format, nur den Datentyp). Aufpassen muß man halt, wenn man eine VBA-Variable oder ein Datumsliterial verwenden/einsetzen muß.

Gruß
Franz

Hi Franz,

Mhmm, Trick habe ich keinen, es braucht nur ein Feld, nach dem
man datumsmäßig aufsteigend sortieren kann. Dann kann man den
„vorhergehenden“ DS mit einer Unterabfrage (oder Dmax)
auslesen und die Differnz bilden.

ich dachte immer, das geht nur, wenn man das Feld als Ident benutzen kann, sprich wenn es eindeutig ist. War eh mehr eine akademische Frage, ich erledige sowas auf die gute alte Art, der Gruppenwechsel (weiß noch einer, was das war?) ist bei solchen Aufgaben meist nicht weit.

Gruß Ralf