Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie übergebe ich SSIS-Variablen im ODBC-SQLCommand-Ausdruck?

  • Mit OLE DB

Probieren Sie diesen Code aus, er funktioniert bei mir mit meinen eigenen Tabellen mit SQL Server:

SELECT userid,sum(goldbalance) AS SUMGOLD
FROM deltadna.events_live
WHERE eventTimestamp >= DATEADD(DAY, -100,CONVERT(DATE,?))
GROUP BY userid
ORDER BY SUMGOLD desc

Sie müssen im OLEDB-Quelleditor auf Parameter klicken, um zu konfigurieren, was Sie benötigen. Verwenden Sie das '?' um eine Variable in Ihrer Abfrage darzustellen.

Wenn Ihre Abfrage zu kompliziert ist, speichern Sie sie in einer gespeicherten Prozedur und rufen Sie sie so auf:

EXEC shema.storedProcedureName ?

Und ordnen Sie das '?' zu Ihrer Variable @user::DateString

  • Mit ODBC

Die Ausdrücke befinden sich außerhalb des Datenflusses in den Datenflusseigenschaften. Wählen Sie die Ausdruckseigenschaft aus und fügen Sie Ihre dynamische Abfrage hinzu.

Und Ihr Ausdruck wird sein

"SELECT userid,sum(goldbalance) AS SumGold
FROM deltadna.events_live
where eventTimestamp>=DATE "[email protected][User::datestring]+" +INTERVAL '-100 day'
group by userid
order by SumGold desc"