Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment passer des variables SSIS dans l'expression ODBC SQLCommand ?

  • Avec OLE DB

Essayez ce code, il fonctionne pour moi avec mes propres tables avec 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

Vous devez cliquer sur Paramètres dans l'éditeur de source OLEDB pour configurer ce dont vous avez besoin. Utilisez le '?' pour représenter une variable dans votre requête.

Si votre requête est trop compliquée, stockez-la dans une procédure stockée et appelez-la comme ceci :

EXEC shema.storedProcedureName ?

Et mappez le '?' à votre variable @user::DateString

  • Avec ODBC

Les expressions se trouvent en dehors du flux de données dans les propriétés du flux de données.Sélectionnez la propriété d'expression et ajoutez votre requête dynamique.

Et votre expression sera

"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"