2013-12-12 39 views
0

如果您選擇開始日期和結束日期,我需要顯示按星期細分的數據。我必須在堆積的柱形圖中顯示。我想,如果你選擇,例如上個月我需要幾周例如需要顯示選定時間範圍內的數據週數

week user name total approved first approved last aprovedDate totalitemsAdded 
----- --------- -------------- -------------- ---------------- --------------- 
week1 XYZ  3    10/01/2012  10/05/2012  5 
week2 XYZ  5    etc   etc    etc 
week3 

顯示它下面的代碼,結果我現在越來越顯示的值。

當前結果

UserName TotalApproved FirstApprovedDate  LastApprovedDate  TotalItemsAdded 
-------- ------------- ----------------------- ----------------------- --------------- 
XYZ  9    2011-11-19 16:56:49.960 2011-11-19 18:18:20.783 2 

 

DECLARE @StartDate DATETIME 
DECLARE @EndDate DATETIME 
SET @StartDate = '10/1/2012 ' 
SET @EndDate = '10/31/2012' 

;with Items as(
     SELECT 
       UserName = Profile.Description, 
       TotalItems = COUNT(TransactionID), 
       FirstAddedDate = MIN(UTCDate), 
       LastAddedDate = MAX(UTCDate) 
     FROM Transactiondatabase.dbo.transaction 
       JOIN Biography.dbo.Profile ON transaction.ProfileId = Profile.ProfileID 
     WHERE 
       Data like '%ItemAdded%' 
       AND UTCDate BETWEEN @StartDate AND DATEADD(dd,1,@EndDate) 
     GROUP BY 
       Profile.Description 
) 

, 
Approved as 
(
     SELECT 
       UserName = Profile.Description, 
       TotalApproved = COUNT(TransactionID), 
       FirstApprovedDate = MIN(UTCDate),--Demo 
       LastApprovedDate = MAX(UTCDate)     
     FROM Transactiondatabase..transaction 
       JOIN Biography.dbo.Profile ON transaction.ProfileId = Profile.ProfileID 
     WHERE 
       Data like '%Approved%' 
       AND UTCDate BETWEEN @StartDate AND DATEADD(dd,1,@EndDate) 
     GROUP BY 
       Profile.Description 
) 

Select Distinct Approved.*, TotalItemssAdded = sum(distinct Items.TotalItems) 
from Items, Approved 
Group by Approved.UserName, Approved.FirstApprovedDate, Approved.LastApprovedDate, Approved.TotalApproved 
using ssrs 2005 

回答

0

你會發現:

DATEPART(WEEK, UTCDate) 

很有幫助。如:

SELECT FirstApprovedWeek = DATEPART(WEEK, UTCDATE) FROM table 

有關更多詳細信息和使用選項,請參閱MSDN - DATEPART (Transact-SQL)

+0

感謝您的建議。但是這隻會給一年的一個星期。 – user3096831

+0

@ user3096831 - 是的,但您可以在一年中的某一週進行分組,然後使用MIN,MAX獲取一週的開始/結束時間。 – JDB