r1c1 Geschrieben 12. Juli 2010 Teilen Geschrieben 12. Juli 2010 Hallo zusammen, ich möchte gerne aus einer Tabelle mit folgendem Aufbau die Anzahlen jeweils nach Monat ausgegeben haben. Person | Monat | Anzahl Es soll dann eine neue Tabelle entstehen die so ausschaut: Person | Anzahl aktueller Monat | Anzahl voriger Monat | Anzahl vorvoriger Monat Dabei bin ich wie folgt verfahren: select person , anzahl_0 , anzahl_1 , anzahl_2 from ( select person , monat , anzahl anzahl_0 from Tabelle where monat= TO_CHAR(SYSDATE,'yyyy-mm') order by name ) Allerdings weiß ich jetzt nicht, wie ich die anderen beiden Spalten (letzter und vorletzter Monat) befüllen kann. Ich hatte es versucht unter dem zweiten "from" Befehl zu packen, bin aber nicht weitergekommen! Hat jemand einen Tip? Vielen Dank! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Toothrot Geschrieben 15. Juli 2010 Teilen Geschrieben 15. Juli 2010 Der Monat ist als String in der form '2010-07' gespeichert? Ungünstig. Für Datumsangaben nimmt man auch einen entsprechenden Datentyp. Um die Daten so darzustellen, wie Du es gern hättest benötigst Du Self-joins. Zum Beispiel so: select akt.person, akt.anzahl as "Anzahl aktueller Monat", vor.anzahl as "Anzahl voriger Monat", vorvor.anzahl as "Anzahl vorvoriger Monat" from Tabelle akt, Tabelle vor, Tabelle vorvor where akt.person = vor.person and akt.person = vorvor.person and akt.monat = TO_CHAR(SYSDATE,'yyyy-mm') and vor.monat = add_months( to_date(akt.monat, 'yyyy-mm'), -1 ) and vorvor.monat = add_months( to_date(akt.monat, 'yyyy-mm'), -2 ); Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.