Vinnaren i pepparkakshustävlingen!
2008-10-10, 17:52
  #1
Moderator
^Eazs avatar
Hej,

Jag håller på att fixa en rapport som är visar en jämförelse mellan 2 veckor över två år. E.g. skriver jag in 200828 som parameter så ska den jämföra detta med 200728.

Jag misstänker att jag behöver göra en SubString som byter ut 4:e siffran i 200828 till en mindre e.g. 200728 men hur får jag till detta?

Helst vill jag undvika typ följande:
DECODE(SUBSTR(Payroll_Period,4,1),9,8,8,7,7,6,6,5, 5,4,4,3,3,2,2,1,0,0,9,0) då det inte kommer funka när det slår runt (detta kommer inte vara ett problem förrän 2010 då den 2010 blir 2019, men hur som helst vill jag ha den framtidssäkrad.

Hoppas ni förstår vad jag menar och har någon idé.

Tackar.
__________________
Senast redigerad av ^Eaz 2008-10-10 kl. 18:06.
Citera
2008-10-10, 17:58
  #2
Medlem
googlevistas avatar
Kan du inte hantera ditt indata som en int och dra bort 100?

200828 - 100 = 200728.
Citera
2008-10-10, 18:01
  #3
Moderator
^Eazs avatar
Citat:
Ursprungligen postat av googlevista
Kan du inte hantera ditt indata som en int och dra bort 100?

200828 - 100 = 200728.


Nopes, blev strul i Oracle Discoverer när jag testade det.

Fick till det på ful väg dock
2 Kalkyleringar:
calc1 SUBSTR(Payroll_Period,1,4)-1
calc2 SUBSTR(Payroll_Period,5,2)

Sen en 3dje calc3: calc1 || calc2

Edit: Typiskt att jag sitter och pillar nästan hela dagen för att få till det, postar och kommer på.....
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback