Hallo,
Onderstaande view wordt gegenereerd op het moment als deze wordt aangesproken
[code=sql]
CREATE VIEW dbo.V_WK4_BestelOverzicht1 AS
SELECT Object_id, SUM(- Quantity_Requested_in_Stock_UM) AS Aantal FROM dbo.V_tblOrderregels_ST
WHERE
(Movement_Status = '90') AND (Movement_Type = '01') AND
((CASE WHEN DATEPART(wk, Date_Actual ) + 1 - DATEPART(wk, CAST(DATEPART(yy, Date_Actual ) AS CHAR(4)) + '0104') = 0
THEN ((year(Date_Actual ) - 1) * 100) + (DATEPART(wk, (CAST((year(Date_Actual ) - 1) AS CHAR(4)) + '1231')) + 1 - DATEPART(wk, CAST((year(Date_Actual ) - 1) AS CHAR(4)) + '0104'))
ELSE (CASE WHEN ((DATEPART(mm, Date_Actual ) = 12) AND ((DATEPART(dd, Date_Actual ) - DATEPART(dw, Date_Actual )) >= 28))
THEN (YEAR(Date_Actual ) * 100) + 1
ELSE (YEAR(Date_Actual ) * 100) + (DATEPART(wk, Date_Actual ) + 1 - DATEPART(wk, CAST(DATEPART(yy, Date_Actual ) AS CHAR(4)) + '0104')) END) END) = (CASE WHEN DATEPART(wk, GETDATE()-28) + 1 - DATEPART(wk, CAST(DATEPART(yy, GETDATE()-28) AS CHAR(4)) + '0104') = 0
THEN ((year(GETDATE()-28) - 1) * 100) + (DATEPART(wk, (CAST((year(GETDATE()-28) - 1) AS CHAR(4)) + '1231')) + 1 - DATEPART(wk, CAST((year(GETDATE()-28) - 1) AS CHAR(4)) + '0104'))
ELSE (CASE WHEN ((DATEPART(mm, GETDATE()-28) = 12) AND ((DATEPART(dd, GETDATE()-28) - DATEPART(dw, GETDATE()-28)) >= 28))
THEN (YEAR(GETDATE()-28) * 100) + 1 ELSE (YEAR(GETDATE()-28) * 100) + (DATEPART(wk, GETDATE()-28) + 1 - DATEPART(wk, CAST(DATEPART(yy, GETDATE()-28) AS CHAR(4)) + '0104')) END) END))
GROUP BY Object_id
[/code=sql]
Ik heb hem zelf niet gemaakt en snap niks van deze opbouw.
Op deze manier pakt hij de data van 4 weken geleden. Deze moet veel makkelijker kunnen want hij geeft erg veel time-out's hierop.
Heeft iemand een idee hoe je makkelijk data van 4 weken geleden kan opzoeken
Onderstaande view wordt gegenereerd op het moment als deze wordt aangesproken
[code=sql]
CREATE VIEW dbo.V_WK4_BestelOverzicht1 AS
SELECT Object_id, SUM(- Quantity_Requested_in_Stock_UM) AS Aantal FROM dbo.V_tblOrderregels_ST
WHERE
(Movement_Status = '90') AND (Movement_Type = '01') AND
((CASE WHEN DATEPART(wk, Date_Actual ) + 1 - DATEPART(wk, CAST(DATEPART(yy, Date_Actual ) AS CHAR(4)) + '0104') = 0
THEN ((year(Date_Actual ) - 1) * 100) + (DATEPART(wk, (CAST((year(Date_Actual ) - 1) AS CHAR(4)) + '1231')) + 1 - DATEPART(wk, CAST((year(Date_Actual ) - 1) AS CHAR(4)) + '0104'))
ELSE (CASE WHEN ((DATEPART(mm, Date_Actual ) = 12) AND ((DATEPART(dd, Date_Actual ) - DATEPART(dw, Date_Actual )) >= 28))
THEN (YEAR(Date_Actual ) * 100) + 1
ELSE (YEAR(Date_Actual ) * 100) + (DATEPART(wk, Date_Actual ) + 1 - DATEPART(wk, CAST(DATEPART(yy, Date_Actual ) AS CHAR(4)) + '0104')) END) END) = (CASE WHEN DATEPART(wk, GETDATE()-28) + 1 - DATEPART(wk, CAST(DATEPART(yy, GETDATE()-28) AS CHAR(4)) + '0104') = 0
THEN ((year(GETDATE()-28) - 1) * 100) + (DATEPART(wk, (CAST((year(GETDATE()-28) - 1) AS CHAR(4)) + '1231')) + 1 - DATEPART(wk, CAST((year(GETDATE()-28) - 1) AS CHAR(4)) + '0104'))
ELSE (CASE WHEN ((DATEPART(mm, GETDATE()-28) = 12) AND ((DATEPART(dd, GETDATE()-28) - DATEPART(dw, GETDATE()-28)) >= 28))
THEN (YEAR(GETDATE()-28) * 100) + 1 ELSE (YEAR(GETDATE()-28) * 100) + (DATEPART(wk, GETDATE()-28) + 1 - DATEPART(wk, CAST(DATEPART(yy, GETDATE()-28) AS CHAR(4)) + '0104')) END) END))
GROUP BY Object_id
[/code=sql]
Ik heb hem zelf niet gemaakt en snap niks van deze opbouw.
Op deze manier pakt hij de data van 4 weken geleden. Deze moet veel makkelijker kunnen want hij geeft erg veel time-out's hierop.
Heeft iemand een idee hoe je makkelijk data van 4 weken geleden kan opzoeken