2017-07-03 11 views
0

先週のすべてのデータについて、(月曜日〜日曜日)にカウントしようとしています。しかし何らかの理由で日曜日を無視しているようで、正しいカウントが得られないようです。先週のSQLサーバーでデータを集計しました

SET DATEFIRST 1 
    Select * 
    FROM Products a 
    inner join Locations b 
    on a.Location = b.LocID 
    where b.LocID = 12 AND 
    a.Created >= DATEADD(week, DATEDIFF(week,0,GETDATE())-1,-1) 
    AND a.Created < DATEADD(week, DATEDIFF(week,0,GETDATE()),-1) 
+1

SET DATEFIRST 1 セレクトDATEADD(週、DATEDIFF(週、0、GETDATE()) - 1、-1) 、DATEADD(週、DATEDIFF(週、0、GETDATE ())、 - 1)あなたがそれを実行すると、あなたはなぜ日曜日に来ていないのか分かるはずです。 – SteveB

答えて

0

代わりに曜日を使用してみてください。私はあなたが実際に計算する必要があるとして、あなたはWEEKを使用してに問題があるかもしれないと思う:

a.Created> =(先週月曜日)と<をa.Created(今週月曜日)

ここDWを使用したクエリです:

SET DATEFIRST 1 
Select * 
FROM Products a 
inner join Locations b 
on a.Location = b.LocID 
where b.LocID = 12 AND 
a.Created >= DATEADD(day, -DATEPART(dw, GETDATE())-6, CONVERT(DATE,GETDATE())) 
AND a.Created < DATEADD(day, -DATEPART(dw, GETDATE())+1, CONVERT(DATE,GETDATE())) 
+0

ありがとうございました!完璧に動作します! – MishMish

関連する問題