feldname in abhängigkeit zum datum ausgeben

dreix

Grünschnabel
Ich habe zwei Tabellen. Die erste mit Tätigkeiten, die zweite mit geleisteten Stunden.



taetigkeiten_tab

Taetigkeit_id

Taetigkeit

Stundensatz_2013

Stundensatz_2014

Stundensatz_2015

Etc.



dateneingabe_tab

Taetigkeit_id

stunden

Datum



Jetzt würde ich gern in Abhängigkeit vom YEAR(datum) den richtigen Stundensatz aus der taetigkeiten_tab herauslesen.

Aber ich bin zu doof die Felder zu verketten. So wollte ich das machen, aber das funzt nicht.



SELECT

dateneingabe_tab.stunden*CONCAT(taetigkeiten_tab.stundensatz_',YEAR(dateneingabe_tab.datum)) AS gesamt,

taetigkeiten_tab.taetigkeit_id AS taetigkeit_id,

dateneingabe_tab.datum AS datum,

YEAR(dateneingabe_tab.datum) AS jahr,

dateneingabe_tab.stunden

FROM dateneingabe_tab, taetigkeiten_tab

WHERE dateneingabe_tab. Taetigkeit_id= taetigkeiten_tab. Taetigkeit_id



Ihr habt sicherlich eine einfache Lösung für mich. DANKE!!!
 
Du kannst concat nicht brauchen um dynamisch den Spaltennamen zu bestimmen.
Für deine Frage musst du wohl etwas in diese Richtung versuchen:
SQL:
SELECT
CASE
    WHEN TO_NUMBER(YEAR(d.datum)) = 2013 THEN d.stunden * t.stundensatz_2013
    WHEN TO_NUMBER(YEAR(d.datum)) = 2014 THEN d.stunden * t.stundensatz_2014
    WHEN TO_NUMBER(YEAR(d.datum)) = 2015 THEN d.stunden * t.stundensatz_2015
END AS gesamt,
d.taetigkeit_id,
d.datum AS datum,
YEAR(d.datum) AS jahr,
d.stunden
FROM
    dateneingabe_tab d
INNER JOIN
    taetigkeiten_tab t
ON
    d.Taetigkeit_id = t.Taetigkeit_id;
 
die idee ist nicht schlecht. ich müsste dann die zukunft schon mit einbauen und einen default wert setzen. aber so könnte es gehen.
 

Neue Beiträge

Zurück