Bonjour
J'ai écrit cette requête en passant par des variable pour éviter de faire des CAST(datetime as date) et des calcul sur GetDate() dans l’exécution
Et j'aurais voulu en faire une vue
Mais je constate hélas qu'il n'est pas possible de déclarer des Variables dans une vue
Existe-t-il une autre manière ?
Merci de votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 DECLARE @Today AS Datetime DECLARE @MONBEG AS Datetime DECLARE @YEARBEG AS Datetime SET @Today=CAST(GETDATE() AS DATE) SET @MONBEG=DATEADD(month, DATEDIFF(month, 0, @Today), 0) SET @YEARBEG=DATEADD(yy, DATEDIFF(yy, 0, @Today), 0) SELECT dbo.TradeInBaskets.AffiliateId, SUM(CASE WHEN TradeInBaskets.DateTime BETWEEN @YearBeg AND @MonBeg THEN 1 else 0 END) AS YTMBeg , SUM(CASE WHEN TradeInBaskets.DateTime BETWEEN @MONBEG AND @Today THEN 1 else 0 END) AS MTYest , SUM(CASE WHEN TradeInBaskets.DateTime >@Today THEN 1 else 0 END) AS Today , SUM(CASE WHEN TradeInBaskets.IsCancelled=1 THEN 1 ELSE 0 END ) AS NbCancel, SUM(CASE WHEN TradeInBaskets.IsCancelled=0 THEN TradeInBaskets.TradeInPrice ELSE 0 END) AS Value from TradeInBaskets WHERE DateTime>@YEARBEG GROUP by Affiliateid







Répondre avec citation
Partager