Bonjour,
J'ai une requête qui doit avoir comme critère un cycle (une période).
Ce cycle est compris entre chaque dimanche 23h59.
Il s'agit donc de définir tout ce qui est au-delà du dernier dimanche 23h59... mais je cale.
Merci de votre aide
Bonjour,
J'ai une requête qui doit avoir comme critère un cycle (une période).
Ce cycle est compris entre chaque dimanche 23h59.
Il s'agit donc de définir tout ce qui est au-delà du dernier dimanche 23h59... mais je cale.
Merci de votre aide
Une requete de ce type correspondrait-elle ?
Ici on va obtenir le nombre de semaine d'écart d'une date présente dans une table avec une date de référence.
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT Interval = DATEDIFF(week, date_reference, '20120101') FROM nom_table
Sinon il serait peut-être intéressant de nous exposer quelles sont les données en entrée fournies et l'objectif de cette requête pour obtenir une réponse plus proche de votre besoin.
Bonjour,
Donc il s'agit du Lundi, à minuit. Ce qui permet d'écrire, sous SQL Server 2008 :Il s'agit donc de définir tout ce qui est au-delà du dernier dimanche 23h59
Et sous SQL Server 2005 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SET LANGUAGE 'French' DECLARE @lundi_dernier date = DATEADD(day, -DATEPART(weekday, GETDATE()) + 1, GETDATE()) SELECT desColonnes FROM dbo.uneTable WHERE laColonneDate >= @lundi_dernier
@++
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SET LANGUAGE 'French' DECLARE @lundi_dernier datetime SELECT @lundi_dernier = CAST(FLOOR(CAST(DATEADD(day, -DATEPART(weekday, GETDATE()) + 1, GETDATE()) AS float)) AS datetime) SELECT desColonnes FROM dbo.uneTable WHERE laColonneDate >= @lundi_dernier
J'arrive à bien isoler le cycle de cette manière :
Mais lorsque je veux sauvegarder la requête, j'ai le message "Incorrect syntax near the keyword 'SET' ".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SET DATEFIRST 1 SELECT TOP (100) PERCENT settledDate, fullMarketName, betId, commissionRate FROM dbo.bfGetAccountStatement GROUP BY settledDate, fullMarketName, betSize, betId, commissionRate HAVING (commissionRate <> N'NA') AND (betSize = 0) AND (settledDate > CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS DATETIME) - (DATEPART(dw, GETDATE()) - 1)) ORDER BY settledDate DESC
Idem avec SET LANGUAGE 'French'.
Si je ne mets pas SET DATEFIRST 1, le premier jour de la semaine est le dimanche.
J'ai contourné le problème pour le moment en mettant la base en français.
Comme la question à l'origine de ce post est résolue, j'ai créé un autre topic relatif au problème lié à l'ajout de 'SET...' :
http://www.developpez.net/forums/d12...d/#post7048970
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager