2011-07-11 2 views
0

J'ai un rapport d'inventaire avec lequel je calcule notre consommation hebdomadaire moyenne d'une pièce donnée, puis nous la divisons par ce que nous avons sous la main pour nous montrer une «semaine en main» numérique. Donc, si nous avons une consommation hebdomadaire moyenne de 496 et que nous avons 1500 pièces disponibles, les semaines disponibles devraient être de 3,02.Ajouter seulement certains jours à un DateAdd dans SQL?

Ce que j'essaie de faire est de prendre ce nombre et calculer exactement quel jour nous allons manquer de la partie en question. Nous serions donc à court de l'exemple dans 3.02 semaines à partir de maintenant. Mon problème est que je dois exclure les vendredis - dimanches, donc chaque semaine de travail est seulement quatre jours. J'ai regardé la fonction DATEADD(), et cela semble être ce que j'ai besoin d'utiliser, mais je ne suis pas sûr de savoir comment en exclure les vendredis. J'utilise SQL 2005 pour cela.

Merci beaucoup!

Répondre

0
DECLARE @old_dt SMALLDATETIME 
SET @old_dt = GETDATE() 
DECLARE @new_dt SMALLDATETIME 
SET @new_dt = DATEADD(d,CAST(3.2*7 AS INT),@old_dt) 
SELECT CASE WHEN DATENAME(weekday,@new_dt) = 'Thursday' THEN DATEADD(d,2,@new_dt) WHEN DATENAME(weekday,@new_dt) = 'Friday' THEN DATEADD(d,1,@new_dt) ELSE @new_dt END 
Questions connexes