SQL-Challange
Geizhals » Forum » Programmierung » SQL-Challange (17 Beiträge, 194 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
......
Re(6): SQL-Challange
29.09.2003, 12:51:46
Bitte schen ein Statement. Einmal mit inputvalues und einmal mit konkretem beispiel, damit man das auch versteht. Das is großteils in ORACLE Syntax. DECODE is so was ähnliches wie CASE.
Also zB.: DECODE(WERT,1,10,0) <=> CASE(WERT,WHEN 1 THEN 10 ELSE 0).
Ich hoffe du kannst das in SQLServer-Syntax umbauen. Falls nicht bemüh ich mich das zu übersetzen, aber ich sags gleich ich bin kein T-SQL Profi.

select
   artikel_nr,
   sum(decode(to_char(datum,'yyyy'),substr(v_input,1,4),umsatz,0)) summe_aktuelles_jahr,
   sum(decode(datum<=to_date((v_input-100),'yyyymm'),umsatz,0)) summe_lfd_vorjahr,
   sum(decode(to_char(datum,'yyyy'),(substr(v_input,1,4)-1),umsatz,0)) summe_voriges_jahr_gesamt,
   sum(decode(to_char(datum,'yyyymm'),v_input,umsatz,0)) summe_aktuelles_monat,
   sum(decode(to_char(datum,'yyyymm'),(v_input-100),umsatz,0)) summe_vorjahres_monat
from artikel_umsatz
where to_date((substr(v_input,1,4)-1),'yyyy') <= datum and datum <= to_date(v_input,'yyyymm')
group by artikel_nr

select
   artikel_nr,
   sum(decode(to_char(datum,'yyyy'),'2003',umsatz,0)) summe_aktuelles_jahr,
   sum(decode(datum<=to_date('200205','yyyymm'),umsatz,0)) summe_lfd_vorjahr,
   sum(decode(to_char(datum,'yyyy'),'2002',umsatz,0)) summe_voriges_jahr_gesamt,
   sum(decode(to_char(datum,'yyyymm'),'200305',umsatz,0)) summe_aktuelles_monat,
   sum(decode(to_char(datum,'yyyymm'),'200205',umsatz,0)) summe_vorjahres_monat
from artikel_umsatz
where to_date('2002','yyyy') <= datum and datum <= to_date('200305','yyyymm')
group by artikel_nr

greetz
Walter

Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung