2016-10-19 13 views
0

Ich bin ein Neuling zu SSIS also bitte bitte mit mir, wenn diese Frage super einfach für Sie ist.For Loop SSIS - AssignExpression

Ich verwende einen For-Schleife-Container und die Bedingung basieren auf Variablen (im Format YYYMM), in der AssignExpression bin ich die Variable um 1 erhöhen, die den nächsten Monat gibt.

Wie erreiche ich die gleiche Funktionalität für die Jahresendmonate?

Für Beispiel Startwert 198.906: AssignExpression (@StartValue = @StartValue + 1), so das gibt mir 198.907, aber wie, wie ich zu 198.301

Dank 198.912 erhalten,

+0

Entschuldigung, können Sie Ihre Anfrage etwas besser erklären? –

Antwort

0

können Sie ein verwenden Funktion wie die unten im Skript-Aufgabe:

Function fctStartMonth (pStartMonth as String, pCounter as Integer) as String 

    Dim intMonth as Integer 
    Dim intYear as Integer 

    intMonth = CInt(Right(pStartMonth,2))+ pCounter -1 
    intYear = CInt(Left(pStartMonth,4)) 

    if intMonth > 12 then 
     intYear = intYear + 1 
     if intMonth = 13 then intMonth = 1 
     if intMonth = 14 then intMonth = 2 
     if intMonth = 15 then intMonth = 3 
     if intMonth = 16 then intMonth = 4 
     if intMonth = 17 then intMonth = 5 
     if intMonth = 18 then intMonth = 6 
     if intMonth = 19 then intMonth = 7 
     if intMonth = 20 then intMonth = 8 
     if intMonth = 21 then intMonth = 9 
     if intMonth = 22 then intMonth = 10 
     if intMonth = 23 then intMonth = 11 
     if intMonth = 23 then intMonth = 12 
    End If 

    fctStartMonth = CStr(intYear) & "-" & Right("0" & CStr(intMonth),2) 

End Function 
0

Sie dies als Ihre assign Ausdruck verwenden:

@StartValue = (DT_I4)RIGHT((DT_STR, 6, 1252)@StartValue,2) - 12 == 0 ? @StartValue +89 : @StartValue + 1 
0

Ich würde vorschlagen, zuerst ein Datum aus dem Anfangswert, wie

(DT_DATE)(LEFT("201601",4)+"-"+RIGHT("201601",2)+"-"+"01") 

analysieren Danach können Sie eine Schleife über sie und

DATEADD("mm", 1, @YourDate) 

, um den Wert zu erhöhen verwenden. Dies wird das Jahr für Sie ändern.