2016-08-24 7 views
0

私は現在、同じ週の最後の週のデータ(「売上」と仮定することができます)と最後の年のデータを与えるクエリを書いています。 先週の前年度データ

Set DATEFIRST 1 
Select DATEPArt(dd, DateAdded) AS 'Day of the Month', 
     count(*)AS 'Number of Users' 
from TABLE1 
Where DateAdded >= dateadd(day, -(datepart(dw, getdate()) + 6), CONVERT(date,getdate())) 
    AND DateAdded < dateadd(day, 1-datepart(dw, getdate()), CONVERT(date,getdate())) 
Group by DATEPArt(dd, DateAdded) 
Order by 'Day of the Month' 

は、今私は同じ週から私の最後の年のデータを与える別の列を追加する:これは私が最後の週のデータを取得する必要がありますし、それが正常に動作するものです。これは私が考えていたものです:

Set DATEFIRST 1 
Select DATEPArt(dd, DateAdded) AS 'Day of the Month', 
     count(*)AS 'Number of Users' 
from TABLE1 
Where DateAdded >= DATEADD(yy,DATEDIFF(yy,0,GETDATE())-1,0) 
    AND DateAdded < DATEADD(yy,DATEDIFF(yy,0,GETDATE())+1,0) 
    AND DateAdded >= dateadd(day, -(datepart(dw, getdate()) + 6), CONVERT(date,getdate())) 
    AND DateAdded < dateadd(day, 1-datepart(dw, getdate()), CONVERT(date,getdate())) 
Group by DATEPArt(dd, DateAdded), DateAdded 
Order by 'Day of the Month' 

問題は私がまだ最後の週の番号を得ることです(今年は昨年になる必要があります)。これにより、エラーはどこかにあるはずです。

DateAdded >= DATEADD(yy,DATEDIFF(yy,0,GETDATE())-1,0) 
AND DateAdded < DATEADD(yy,DATEDIFF(yy,0,GETDATE())+1,0) 

皆様のご協力に感謝します!

答えて

1

あなたはOR条件

WHERE (DateAdded >= DATEADD(yy,DATEDIFF(yy,0,GETDATE())-1,0) 
    AND DateAdded < DATEADD(yy,DATEDIFF(yy,0,GETDATE())+1,0)) 

OR (DateAdded >= dateadd(day, -(datepart(dw, getdate()) + 6), CONVERT(date,getdate())) 
    AND DateAdded < dateadd(day, 1-datepart(dw, getdate()), CONVERT(date,getdate()))) 
を探しています
関連する問題