末我有需要總量可達每週註冊的數量,在過去的十年星期,顯示爲(SQL)分組由
「周結束二零零九年十月十日」的報告500"
「周結束10月3日,2009年」 400"
「週刊2009年結束9月26日,」 1000"
等等
這裏是我的查詢:
SELECT Count(*) as [Total]
,Week = DateAdd(day, -1 * datepart(dw, CONVERT(varchar,CreateDate,101)), CONVERT(varchar,CreateDate,101))
FROM aspnet_membership WITH (nolock)
WHERE CreateDate BETWEEN CAST(CONVERT(varchar, DATEADD(ww, -10, DATEADD(dd, -(DATEPART(dw, GETDATE()) - 1), GETDATE())), 101) AS DATETIME) AND
DateAdd(day, -1 * datepart(dw, CONVERT(varchar,Getdate(),101)), CONVERT(varchar,GetDate(),101))
GROUP BY DateAdd(day, -1 * datepart(dw, CONVERT(varchar,CreateDate,101)), CONVERT(varchar,CreateDate,101))
ORDER BY [Week] DESC
子句之間2009年8月2日和10/10/2009之間做了,但結果不包含任何記錄,10月10日當週,甚至儘管數據庫中有數千個。
我在猜測我是由不正確的東西組成的東西。
任何幫助將不勝感激。
公式工作,但想知道爲什麼你CONVERT CreateDate到一個varchar字段?它似乎沒有CONVERT工作正常。 – Andomar 2009-10-13 23:28:10
我剛剛複製了JackM的公式 - 我認爲他有一些理由來進行轉換。 – Martha 2009-10-14 14:10:18