Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

Wie kann ich denn einen Spaltennamen dynamisch abändern?

Also von einer anderen Tabelle nehmen?

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

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' ...


@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.

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

@ ipu

:confused: Jetzt erzähl mir mal wie du dir das mit "Format()" vorstellst :floet:

In welcher Anwendung führst du das SQL aus ?

@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 :-)

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

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


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.


db2 -vtf select_liste "+%B"

und dann im sql : as date $1 ...

als reine Ausgabe funktioniert es, obs in deinem sql satement klappt :rolleyes: keine Ahnung

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.