mmax Geschrieben 11. April 2006 Teilen Geschrieben 11. April 2006 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Carnie Geschrieben 11. April 2006 Teilen Geschrieben 11. April 2006 mmh Notlösung : Erstelle eine zweite Tabelle in der zu jedem Monat der passende Text steht. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mmax Geschrieben 11. April 2006 Autor Teilen Geschrieben 11. April 2006 Wie kann ich denn einen Spaltennamen dynamisch abändern? Also von einer anderen Tabelle nehmen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ipu Geschrieben 12. April 2006 Teilen Geschrieben 12. April 2006 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
baba007 Geschrieben 12. April 2006 Teilen Geschrieben 12. April 2006 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' ... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mmax Geschrieben 12. April 2006 Autor Teilen Geschrieben 12. April 2006 @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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ipu Geschrieben 12. April 2006 Teilen Geschrieben 12. April 2006 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mmax Geschrieben 13. April 2006 Autor Teilen Geschrieben 13. April 2006 @ ipu :confused: Jetzt erzähl mir mal wie du dir das mit "Format()" vorstellst :floet: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
baba007 Geschrieben 13. April 2006 Teilen Geschrieben 13. April 2006 In welcher Anwendung führst du das SQL aus ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mmax Geschrieben 13. April 2006 Autor Teilen Geschrieben 13. April 2006 @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 :-) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
baba007 Geschrieben 13. April 2006 Teilen Geschrieben 13. April 2006 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mmax Geschrieben 13. April 2006 Autor Teilen Geschrieben 13. April 2006 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
baba007 Geschrieben 13. April 2006 Teilen Geschrieben 13. April 2006 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
baba007 Geschrieben 13. April 2006 Teilen Geschrieben 13. April 2006 db2 -vtf select_liste "+%B" und dann im sql : as date $1 ... als reine Ausgabe funktioniert es, obs in deinem sql satement klappt keine Ahnung 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.