Zum Inhalt springen

SQL auf DB/2: Datum in Spaltenname automatisch aktualisieren


Empfohlene Beiträge

Geschrieben

Hi

ich hab hier gerade eine interessante Aufgabenstellung.

Ich erstelle eine Liste die etwa so aussehen soll:

select substr(produktname,1,15) as Produktname, preis, SUM ( CASE WHEN (ereignis_art = 'login' and month(datum) = month(current date)-1) THEN 1 ELSE 0 END ) as Monat FROM liste GROUP BY substr(produktname,1,15);

Produktname Preis Monat

-------------- -------- -----------------

Mein Problem ist die Spalte Monat. Denn dieser Spaltenname soll sich automatisch an den Monat anpassen, also z.B. "April" heißen.

Ich hab eine Tabelle in der das Datum drin ist, jedoch kenn ich keine Lösung um den Spaltenname vatiabel zu machen.

Kann mir da jemand helfen??

Vielen Dank :-)

mmax

Geschrieben

Ich erstelle eine Liste die etwa so aussehen soll:

select substr(produktname,1,15) as Produktname, preis, SUM ( CASE WHEN (ereignis_art = 'login' and month(datum) = month(current date)-1) THEN 1 ELSE 0 END ) as Monat FROM liste GROUP BY substr(produktname,1,15);

Mein Problem ist die Spalte Monat. Denn dieser Spaltenname soll sich automatisch an den Monat anpassen, also z.B. "April" heißen.

Hi!

Kannst du evtl. bei der Funktion "month" noch eine Formatierung mit Format hinzunehmen? So was wie "mmm Die ersten drei Buchstaben des Monats (Jan bis Dez)" oder "mmmm Vollständiger Name des Monats (Januar bis Dezember)"

ipu

Geschrieben

in einem Script würde das gehen, automatisch in SQL geht das nicht. Macht aber auch bei näherem hinschauen einfach keinen Sinn. Schliesslich sind spaltennamen den einträgen entsprechend gewählt und nicht umgekehrt.

vielleicht geht es damit ?


.. Produktname, preis, (case month(datum) when Jan then 'Januar' when Feb then 'Februar' ...


Geschrieben

@ipu

Mach mal n kleines Beispiel :-)

select substr(produktname,1,15) as Produktname, preis, [red]SUM ( CASE WHEN (ereignis_art = 'login' and month(datum) = month(current date)-1) THEN 1 ELSE 0 END ) as Monat FROM liste GROUP BY substr(produktname,1,15);

@baba007

Der rote Bereich zählt lediglich die Häufigkeit der Logins. Also ich bekomm Zahlen zwischen 0 - 300 zurück.

Ich will quasi nur die Überschrift (der fette rote Bereich) dynamisch machen. Dass wenn ich diese Auswertung im April "anstoße", das da auch April steht.

Ich stelle mir da sowas wie ne Variable vor (anstatt das as Monat) die ich immer neu definier.

Geschrieben

Ich will quasi nur die Überschrift (der fette rote Bereich) dynamisch machen. Dass wenn ich diese Auswertung im April "anstoße", das da auch April steht.

Sorry, das hatte ich eben falsch verstanden. Nein, das geht dann nicht direkt mit/in SQL.

Ich stelle mir da sowas wie ne Variable vor (anstatt das as Monat) die ich immer neu definier.

Ich kenne mich mit mit DB/2 nicht aus, aber das klingt logisch. Und vielleicht kannst du ja da mit Format() arbeiten (nein, ich gebs noch nicht auf! :) ).

ipu

Geschrieben

@baba007

Das wird nachher in einer Datei.sql gespeichert, und per Scipt einmal monatlich automatisch angestoßen.

Das Teil läuft also auf der DB/2 Datenbank, und wird mit einem Unix- Befehl zum leben erweckt :-)

Geschrieben

dann führe es mit einem parameter aus. und der parameter ist der aktuelle Monat

date "+%b" gibt den Monat aus Apr oder %B für April

machmalmeinsqlscript (date "+%B") sollte glaube ich klappen

Geschrieben

Frage:

Wie berücksichtige ich das im SQL Code?

Die Anweisung um die Auswertung anzustoßen sieht etwa so aus:

db2 -vtf select_liste

Wäre dein Vorschlag dann dieser?

db2 -vtf %B select_liste

Geschrieben


db2 -vtf select_liste (date "+%B")

und zugriff dann über $1, wenn es nur einer ist.

Aber ein unix guru bin ich nicht, warte lieber die meinung der fachleute ab.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...