- С OLE DB
Опитайте този код, той работи за мен с моите собствени таблици с 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
Трябва да щракнете върху Параметри в OLEDB Source Editor, за да конфигурирате това, от което се нуждаете. Използвай '?' за представяне на променлива във вашата заявка.
Ако заявката е твърде сложна, съхранете я в съхранена процедура и я извикайте така:
EXEC shema.storedProcedureName ?
И картографирайте "?" към вашата променлива @user::DateString
- С ODBC
Изразите са извън потока от данни в свойствата на потока от данни. Изберете свойството на израза и добавете вашата динамична заявка.
И вашето изражение ще бъде
"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"