Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/06/2008, 16h57   #1
Invité de passage
 
Inscription : novembre 2006
Messages : 16
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 16
Points : 0
Points : 0
Par défaut [SQL2k] Comment soustraire une date sans compter les fin de semaines

Bonjour à tous,

Je suis entrain de développer un petit script SQL fort simple : On prend un champ date et on soustrait un nombre (en jours) pour arriver à une nouvelle date. Je suis sous SQL Server 2000..

Code :
1
2
3
4
5
6
7
8
UPDATE
	OrderDet
SET
	User_Date1 = DATEADD(dd, -User_Number1, DueDate)
WHERE
	DueDate >= '01-01-08'
	AND
	STATUS = 'Open';
Ce code fonctionne super bien, il prend mon chiffre et le soustrait (addition négative) à ma date. Toutefois, il ne prend pas en compte les fin de semaines....

J'ai trouvé cette fonction pour trouver quel jour de la semaine est la date spécifiée :
Code :
SELECT DATEPART(weekday, /*ma_date*/)
Il me retourne un chiffre de 1 à 7... (7 étant le samedi et 1 le dimanche). J'aimerais pouvoir faire mon update de la façon suivante (en pseudo-code) :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
Int vraijours = 0;
Pour compteur de 0 à User_Number1 (Mon chiffre)
               Si ((DATEADD(dd, -vraijours, DueDate) = '7') OU (DATEADD(dd, -vraijours, DueDate) = '1') ) Alors /*Si c'est un jour de fin de semaine*/
                       vraijours+=1;
               Sinon
                       vraijours+=1;
                       compteur+=1; /*Le jour n'est pas une fin de semaine, donc on augmente notre compteur*/
               Fin Si
Fin Pour
 
/*Update dans la table pour la ligne en question*/
 
 
/*Faire cette petite boucle pour chaque ligne de ma table OrderDet*/

J'ai tenté de faire quelques boucles en T-SQL, mais c'est du nouveau pour moi et j'ai beaucoup de misère... Si quelqu'un peut m'aider sa serait sympa =)
Winder est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h45.


 
 
 
 
Partenaires

Hébergement Web