Trouver le Même jour de l'Année Précédente Donnée par l'Actuel Date de l'Année dans SQL Server

Je travaille avec SQL Server, Le scénario est de trouver le Même Jour de la Date de l'Année Précédente de la Journée d'aujourd'Hui.

Supposons que 2014-03-06 est aujourd'Hui la Date et le Jour est jeudi je veux Trouver le Même jour dans le Précédent se trouve dans la même semaine .qui est 2013-03-07

tout organisme peut aider?
VOICI ce que j'Ai Écrit:

 DECLARE @DateFrom AS DATETIME
DECLARE @DateTo AS DATETIME 
SET @DateFrom = '2014-01-01'
SET @DateTo = '2014-02-10'
DECLARE @Count AS INT
SET @Count = DATEDIFF(DAY, @DateFrom, @DateTo)
CREATE TABLE #current_year /*This Year*/
(
[Date] DATETIME ,
WeekNum INT,
[Day] VARCHAR(20),
Data INT
)
CREATE TABLE #last_year /*This Year -1*/
(
[Date] DATETIME ,
WeekNum INT,
[Day] VARCHAR(20),
Data INT
)
WHILE ( @Count > 0 ) 
BEGIN
INSERT  INTO #current_year
VALUES  ( CONVERT(VARCHAR(10), @DateFrom, 101),                        
DATEPART(week,@DateFrom),
DATENAME(weekday, @DateFrom),@Count)          
INSERT  INTO #last_year
VALUES  ( CONVERT(VARCHAR(10), DATEADD(YEAR, -1, @DateFrom), 101),                                                  
DATEPART(week,DATEADD(YEAR,1,@DateFrom)),
DATENAME(weekday, DATEADD(YEAR, -1, @DateFrom)),@Count)  
SET @DateFrom = DATEADD(day, 1, @DateFrom)
SET @Count = @Count - 1
END      
SELECT * from #current_year     
SELECT * from #last_year   
SELECT CONVERT(varchar(10),#current_year.[Date],111) AS CYDate,
--ISNULL(CONVERT(varchar(10),#last_year.[Date],111) ,/*CONVERT(varchar(10),DateAdd(dd, 1, DATEADD(yy, -1, #current_year.Date)),111)*/) AS LYDate
--CONVERT(varchar(10),#last_year.[Date],111) AS LYDate
Coalesce(CONVERT(varchar(10),#last_year.[Date],111) ,DateAdd(dd, 1, DATEADD(yy, -1, #current_year.Date))) AS LYDate,
#current_year.Data AS CD,
#last_year.Data AS LD
FROM #current_year                            
--LEFT JOIN #last_year ON #last_year.WeekNum = #current_year.WeekNum
--                                 AND #last_year.[Day] = #current_year.[Day]
Left JOIN #last_year ON #last_year.WeekNum =  DatePart(wk, GETDATE())
DROP TABLE #current_year
DROP TABLE #last_year

Voici le résultat: Trouver le Même jour de l'Année Précédente Donnée par l'Actuel Date de l'Année dans SQL Server

Voici le résultat après l'ajout de votre solution, maintenant dans left join il exclut (NULL) données de l'année précédente

Comment savons-nous que le jeudi est le seul que nous voulons? I. e. si aujourd'hui était 2014-03-07, un vendredi, voulons-nous pour obtenir 2013-03-01 ou 2013-03-08? Il y a probablement beaucoup de cas limites, en fonction de ce que vos définitions sont, fondé sur le début et la fin du mois et, éventuellement, les années bissextiles peut être un facteur. Définir ce qui fait une semaine particulière de l'année précédente "de la même semaine".

OriginalL'auteur DareDevil | 2014-03-06