Click here to Skip to main content
15,888,802 members
Home / Discussions / Database
   

Database

 
AnswerRe: Calculate last week working days Pin
tsaunders15-Jul-08 14:19
tsaunders15-Jul-08 14:19 
AnswerRe: Calculate last week working days Pin
tsaunders15-Jul-08 14:34
tsaunders15-Jul-08 14:34 
QuestionSQL Server 2000 Desktop Edition Deployment issue. Pin
rajawaqas14-Jul-08 17:35
rajawaqas14-Jul-08 17:35 
QuestionHow to Grouped Data weekly monthly and Quarterly Pin
Rameez Raja14-Jul-08 16:59
Rameez Raja14-Jul-08 16:59 
AnswerRe: How to Grouped Data weekly monthly and Quarterly Pin
Mycroft Holmes14-Jul-08 18:07
professionalMycroft Holmes14-Jul-08 18:07 
GeneralRe: How to Grouped Data weekly monthly and Quarterly Pin
Rameez Raja14-Jul-08 23:56
Rameez Raja14-Jul-08 23:56 
GeneralRe: How to Grouped Data weekly monthly and Quarterly Pin
Mycroft Holmes15-Jul-08 0:10
professionalMycroft Holmes15-Jul-08 0:10 
AnswerRe: How to Group Data weekly monthly and Quarterly Pin
leoinfo15-Jul-08 4:33
leoinfo15-Jul-08 4:33 
This is an example of grouping data by year, quarter, month, week.

I know some of you will say *what a rubbish* Smile | :) ,
but, believe me, some people are looking at this rubbish and actually learn something.
So ... Don't say *Unhelpful Answer* Wink | ;)

Just copy and test (in SQL 2005)...

/* START - GENERATE RANDOM DATA */ ; 
CREATE TABLE #T (caseno INT IDENTITY(1,1), Date_Cr DATETIME); 
DECLARE @Cases INT; SET @Cases = 10000 ; 
WHILE @Cases > 0 
BEGIN 
  INSERT INTO #T (Date_Cr) SELECT GETDATE()-RAND()*365*4 ; 
  SET @Cases = @Cases - 1 ; 
END ; 
/* END - GENERATE RANDOM DATA */ ; 

/* START - BUILD STATISTICS */ ; 
;WITH case_stats AS ( 
    /* YEAR */
	SELECT Period = YEAR(Date_Cr) * 10000 
		 , Cases  = COUNT(*) 
	FROM #T 
	GROUP BY  
					YEAR(Date_Cr) * 10000 
 
	UNION ALL 
 
    /* QUARTER */
	SELECT Period = YEAR(Date_Cr) * 10000 
                    + (( MONTH(Date_Cr) + 2 ) / 3)*1000 
		 , Cases  = COUNT(*) 
	FROM #T 
	GROUP BY  
					YEAR(Date_Cr) * 10000 
                    + (( MONTH(Date_Cr) + 2 ) / 3)*1000 
 
	UNION ALL 
 
    /* MONTH */
	SELECT Period = YEAR(Date_Cr) * 10000 
                    + (( MONTH(Date_Cr) + 2 ) / 3)*1000  
                    + MONTH(Date_Cr)*10 
		 , Cases  = COUNT(*) 
	FROM #T 
	GROUP BY  
					YEAR(Date_Cr) * 10000 
                    + (( MONTH(Date_Cr) + 2 ) / 3)*1000  
                    + MONTH(Date_Cr)*10 
 
	UNION ALL 
 
    /* WEEK */
	SELECT Period = YEAR(Date_Cr) * 10000 
                    + (( MONTH(Date_Cr) + 2 ) / 3)*1000  
                    + MONTH(Date_Cr)*10
                    + (1 + DATEPART(ww, Date_Cr) - DATEPART(ww, CONVERT(NVARCHAR(7),Date_Cr, 121)+'-01')) 
		 , Cases  = COUNT(*) 
	FROM #T 
	GROUP BY  
					YEAR(Date_Cr) * 10000 
                    + (( MONTH(Date_Cr) + 2 ) / 3)*1000  
                    + MONTH(Date_Cr)*10
                    + (1 + DATEPART(ww, Date_Cr) - DATEPART(ww, CONVERT(NVARCHAR(7),Date_Cr, 121)+'-01')) 
) 
SELECT *  
INTO #S 
FROM case_stats ; 
/* END - BUILD STATISTICS */  ; 
 
 
 
/* START - BUILD REPORTS */  ; 
 
/* STYLE 1 */ ; 
SELECT  
  Period 
, STUFF(   STUFF(   STUFF(   STUFF( Period ,1,0,'Y') ,6,0,'Q') ,8,0,'M') ,11,0,'W')  
, Cases 
FROM #S 
ORDER BY LEFT(Period,4) DESC, Period  ; 
 
/* STYLE 2 */ ; 
SELECT Period,  
	  Year    = 'Y '+CASE WHEN RIGHT(Period, 4) ='0000'                            
						THEN         LEFT(Period,4)         ELSE NULL END  
	, Quarter = 'Q '+CASE WHEN RIGHT(Period, 4)<>'0000' AND RIGHT(Period, 3)='000' 
						THEN RIGHT(  LEFT(Period,5) ,1)     ELSE NULL END  
	, Month   = 'M '+CASE WHEN RIGHT(Period, 4)<>'0000' AND RIGHT(Period, 3)<>'000' AND RIGHT(Period, 1)='0'  
						THEN RIGHT(  LEFT(Period,7) ,2)     ELSE NULL END  
	, Week    = 'W '+CASE WHEN RIGHT(Period, 4)<>'0000' AND RIGHT(Period, 1)<>'0'  
						THEN        RIGHT(Period,1)         ELSE NULL END  
	, Cases  
FROM #S  
ORDER BY LEFT(Period,4) DESC, Period ;  
 
/* END - BUILD REPORTS */ ; 
 
 
DROP TABLE #S ;   
DROP TABLE #T ;   

QuestionHow to set the timer for SSIS package Pin
nagveni14-Jul-08 12:39
nagveni14-Jul-08 12:39 
AnswerRe: How to set the timer for SSIS package Pin
Marek Grzenkowicz15-Jul-08 22:58
Marek Grzenkowicz15-Jul-08 22:58 
GeneralRe: How to set the timer for SSIS package Pin
nagveni16-Jul-08 10:05
nagveni16-Jul-08 10:05 
GeneralRe: How to set the timer for SSIS package Pin
Marek Grzenkowicz19-Jul-08 9:50
Marek Grzenkowicz19-Jul-08 9:50 
Questionconvert datetime format Pin
tai-fun14-Jul-08 11:01
tai-fun14-Jul-08 11:01 
AnswerRe: convert datetime format Pin
Arindam Tewary14-Jul-08 22:09
professionalArindam Tewary14-Jul-08 22:09 
GeneralRe: convert datetime format Pin
tai-fun15-Jul-08 1:15
tai-fun15-Jul-08 1:15 
AnswerRe: convert datetime format Pin
leoinfo15-Jul-08 5:35
leoinfo15-Jul-08 5:35 
QuestionBULK INSERT and collation problem Pin
msx2314-Jul-08 10:56
msx2314-Jul-08 10:56 
AnswerRe: BULK INSERT and collation problem Pin
Syed Mehroz Alam15-Jul-08 1:08
Syed Mehroz Alam15-Jul-08 1:08 
QuestionWhere To Buy SQL 2000 Reporting Service? [modified] Pin
thundernow14-Jul-08 4:21
thundernow14-Jul-08 4:21 
AnswerRe: Where To Buy SQL 2000 Reporting Service? Pin
DerekFL14-Jul-08 7:51
DerekFL14-Jul-08 7:51 
QuestionFind Last week dates? Pin
Member 387988114-Jul-08 3:04
Member 387988114-Jul-08 3:04 
AnswerRe: Find Last week dates? Pin
subai14-Jul-08 3:21
subai14-Jul-08 3:21 
AnswerRe: Find Last week dates? Pin
leoinfo14-Jul-08 3:35
leoinfo14-Jul-08 3:35 
AnswerRe: Find Last week dates? Pin
TheFM23414-Jul-08 6:26
TheFM23414-Jul-08 6:26 
JokeRe: Find Last week dates? Pin
leoinfo14-Jul-08 18:27
leoinfo14-Jul-08 18:27 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.