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