Sql error: ...is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

Can someone help me with this broken query? I will have about 10 different case statements. Also, the ouput needs to be in hours and minutes.

Thank you,
Jessy
SELECT 
	 CASE
         WHEN DATEDIFF(dd, Pull_Compl_Time, Pull_Req_Time) > 1 THEN DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)-480
         ELSE DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)
     END ,
	CASE
         WHEN DATEDIFF(dd, Manifest_Time, Invoice_Time) > 1 THEN DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)-480
         ELSE DATEDIFF(mi, Invoice_Time, Manifest_Time)
     END ,
	DATEPART(Week,CT_Date) AS Weekno,
	COUNT(CT_Key) AS NbrOfRecords,	 
	substring(convert(varchar(23),convert(datetime,avg(convert(real,Cycle_Time))),121),12,5)	
  FROM Cycle_Time 
	GROUP BY DATEPART(Week,CT_Date)

Open in new window

JessyRobinson1234Asked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Rajkumar GsSoftware EngineerCommented:
Give this a try. Let me know

Raj
SELECT  
         CASE 
         WHEN DATEDIFF(dd, Pull_Compl_Time, Pull_Req_Time) > 1 THEN DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)-480 
         ELSE DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time) 
     END , 
        CASE 
         WHEN DATEDIFF(dd, Manifest_Time, Invoice_Time) > 1 THEN DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)-480 
         ELSE DATEDIFF(mi, Invoice_Time, Manifest_Time) 
     END , 
        DATEPART(Week,CT_Date) AS Weekno, 
        COUNT(CT_Key) AS NbrOfRecords,    
        substring(convert(varchar(23),convert(datetime,avg(convert(real,Cycle_Time))),121),12,5)         
  FROM Cycle_Time  
        GROUP BY DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)-480,
				DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time),  
				DATEDIFF(mi, Invoice_Time, Manifest_Time),
				DATEPART(Week,CT_Date),
				substring(convert(varchar(23),convert(datetime,avg(convert(real,Cycle_Time))),121),12,5)

Open in new window

0
JessyRobinson1234Author Commented:
Thank you. Error: Cannot use an aggregate or a subquery in an expression used for the group by list of a GROUP BY clause.
0
Rajkumar GsSoftware EngineerCommented:
Try this

Raj
SELECT  
         CASE 
         WHEN DATEDIFF(dd, Pull_Compl_Time, Pull_Req_Time) > 1 THEN DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)-480 
         ELSE DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time) 
     END Col1 , 
        CASE 
         WHEN DATEDIFF(dd, Manifest_Time, Invoice_Time) > 1 THEN DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)-480 
         ELSE DATEDIFF(mi, Invoice_Time, Manifest_Time) 
     END Col2, 
        DATEPART(Week,CT_Date) AS Weekno, 
        COUNT(CT_Key) AS NbrOfRecords,    
        substring(convert(varchar(23),convert(datetime,avg(convert(real,Cycle_Time))),121),12,5) AS Col3        
  FROM Cycle_Time  
        GROUP BY Col1, Col2, Weekno, Col3

Open in new window

0
Cloud Class® Course: Microsoft Azure 2017

Azure has a changed a lot since it was originally introduce by adding new services and features. Do you know everything you need to about Azure? This course will teach you about the Azure App Service, monitoring and application insights, DevOps, and Team Services.

JessyRobinson1234Author Commented:
Msg 207, Level 16, State 1, Line 14
Invalid column name 'Col1'.
Msg 207, Level 16, State 1, Line 14
Invalid column name 'Col2'.
Msg 207, Level 16, State 1, Line 14
Invalid column name 'Weekno'.
Msg 207, Level 16, State 1, Line 14
Invalid column name 'Col3'.
0
Shannon_LowderCommented:
The columns listed in your group by clause need to match exactly with those same columns in the select clause,  instead of "co1" use "CASE
         WHEN DATEDIFF(dd, Pull_Compl_Time, Pull_Req_Time) > 1 THEN DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)-480
         ELSE DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)
     END"
---
Shannon lowder
Database Engineer
http://toyboxcreations.net
0
Rajkumar GsSoftware EngineerCommented:
Hope this would work

Raj
SELECT   
         CASE  
         WHEN DATEDIFF(dd, Pull_Compl_Time, Pull_Req_Time) > 1 THEN DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)-480  
         ELSE DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)  
     END  ,  
        CASE  
         WHEN DATEDIFF(dd, Manifest_Time, Invoice_Time) > 1 THEN DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)-480  
         ELSE DATEDIFF(mi, Invoice_Time, Manifest_Time)  
     END ,  
        DATEPART(Week,CT_Date) AS Weekno,  
        COUNT(CT_Key) AS NbrOfRecords,     
        substring(convert(varchar(23),convert(datetime,avg(convert(real,Cycle_Time))),121),12,5)         
  FROM Cycle_Time   
        GROUP BY 
	CASE  
         WHEN DATEDIFF(dd, Pull_Compl_Time, Pull_Req_Time) > 1 THEN DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)-480  
         ELSE DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)  
     END, 
		CASE  
         WHEN DATEDIFF(dd, Manifest_Time, Invoice_Time) > 1 THEN DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)-480  
         ELSE DATEDIFF(mi, Invoice_Time, Manifest_Time)  
     END, 
	DATEPART(Week,CT_Date), substring(convert(varchar(23),convert(datetime,avg(convert(real,Cycle_Time))),121),12,5)

Open in new window

0
JessyRobinson1234Author Commented:
that gives me the same error.
0
JessyRobinson1234Author Commented:
Cannot use an aggregate or a subquery in an expression used for the group by list of a GROUP BY clause.
0
Rajkumar GsSoftware EngineerCommented:
Try this. using another approach

Raj
SELECT Col1, Col2, Col3, Weekno, COUNT(CT_Key) AS NbrOfRecords  
FROM
(
	SELECT  
         CASE 
         WHEN DATEDIFF(dd, Pull_Compl_Time, Pull_Req_Time) > 1 THEN DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)-480 
         ELSE DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time) 
     END Col1, 
        CASE 
         WHEN DATEDIFF(dd, Manifest_Time, Invoice_Time) > 1 THEN DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)-480 
         ELSE DATEDIFF(mi, Invoice_Time, Manifest_Time) 
     END Col2, 
        DATEPART(Week,CT_Date) AS Weekno, 
        CT_Key,    
        substring(convert(varchar(23),convert(datetime,avg(convert(real,Cycle_Time))),121),12,5) AS Col3
  FROM Cycle_Time  
) AA
GROUP BY Col1, Col2, Col3, Weekno

Open in new window

0
8080_DiverCommented:
Try the following:
0
8080_DiverCommented:
Danged delayed responses . . . wound up deleting the code. :-/
SELECT Date1,
       Date2,
       COUNT(CT_Key) AS NbrOfRecords,
       Weekno,
       CycleTime
FROM
(
SELECT
       CASE WHEN DATEDIFF(dd, Pull_Compl_Time, Pull_Req_Time) > 1
              THEN DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)-480
              ELSE DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)
       END Date1,
       CASE WHEN DATEDIFF(dd, Manifest_Time, Invoice_Time) > 1
              THEN DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)-480
              ELSE DATEDIFF(mi, Invoice_Time, Manifest_Time)
       END Date2,
       DATEPART(Week, CT_Date) AS Weekno,
       substring(CONVERT(VARCHAR(23), CONVERT(DATETIME, AVG(CONVERT(REAL, Cycle_Time))), 121), 12, 5) CycleTime
FROM   Cycle_Time
) Z
GROUP BY Date1,
         Date2,
         Weekno,
         CycleTime

Open in new window

0
JessyRobinson1234Author Commented:
Msg 8120, Level 16, State 1, Line 1
Column 'Cycle_Time.Pull_Compl_Time' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Msg 207, Level 16, State 1, Line 3
Invalid column name 'CT_Key'.
0
JessyRobinson1234Author Commented:
Above error applied to 8080 Diver's code.

Here's Raj's error:

Msg 8120, Level 16, State 1, Line 1
Column 'Cycle_Time.Pull_Compl_Time' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
0
Rajkumar GsSoftware EngineerCommented:
First let me know what is the result of this inner query (not entire query)

Raj
SELECT   
         CASE  
         WHEN DATEDIFF(dd, Pull_Compl_Time, Pull_Req_Time) > 1 THEN DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)-480  
         ELSE DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)  
     END Col1,  
        CASE  
         WHEN DATEDIFF(dd, Manifest_Time, Invoice_Time) > 1 THEN DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)-480  
         ELSE DATEDIFF(mi, Invoice_Time, Manifest_Time)  
     END Col2,  
        DATEPART(Week,CT_Date) AS Weekno,  
        CT_Key,     
        substring(convert(varchar(23),convert(datetime,avg(convert(real,Cycle_Time))),121),12,5) AS Col3 
  FROM Cycle_Time

Open in new window

0
JessyRobinson1234Author Commented:
Column 'Cycle_Time.Pull_Compl_Time' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
0
8080_DiverCommented:
This should get rid of the CT_Key issue.
SELECT Date1, 
       Date2, 
       COUNT(CT_Key) AS NbrOfRecords, 
       Weekno, 
       CycleTime 
FROM 
( 
SELECT CT_Key,
       CASE WHEN DATEDIFF(dd, Pull_Compl_Time, Pull_Req_Time) > 1 
              THEN DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)-480 
              ELSE DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time) 
       END Date1, 
       CASE WHEN DATEDIFF(dd, Manifest_Time, Invoice_Time) > 1 
              THEN DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)-480 
              ELSE DATEDIFF(mi, Invoice_Time, Manifest_Time) 
       END Date2, 
       DATEPART(Week, CT_Date) AS Weekno, 
       substring(CONVERT(VARCHAR(23), CONVERT(DATETIME, AVG(CONVERT(REAL, Cycle_Time))), 121), 12, 5) CycleTime 
FROM   Cycle_Time 
) Z 
GROUP BY Date1, 
         Date2, 
         Weekno, 
         CycleTime

Open in new window

0
JessyRobinson1234Author Commented:
8080 Diver: yes:
Column 'Cycle_Time.CT_Key' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
0
8080_DiverCommented:
Then try this (I forgot to also add the CT_Key to the GROUPING):
SELECT CT_Key,
       Date1,  
       Date2,  
       COUNT(CT_Key) AS NbrOfRecords,  
       Weekno,  
       CycleTime  
FROM  
(  
SELECT CT_Key, 
       CASE WHEN DATEDIFF(dd, Pull_Compl_Time, Pull_Req_Time) > 1  
              THEN DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)-480  
              ELSE DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)  
       END Date1,  
       CASE WHEN DATEDIFF(dd, Manifest_Time, Invoice_Time) > 1  
              THEN DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)-480  
              ELSE DATEDIFF(mi, Invoice_Time, Manifest_Time)  
       END Date2,  
       DATEPART(Week, CT_Date) AS Weekno,  
       substring(CONVERT(VARCHAR(23), CONVERT(DATETIME, AVG(CONVERT(REAL, Cycle_Time))), 121), 12, 5) CycleTime  
FROM   Cycle_Time  
) Z  
GROUP BY CT_Key,
         Date1,  
         Date2,  
         Weekno,  
         CycleTime

Open in new window

0
Rajkumar GsSoftware EngineerCommented:
About this ?

Raj
SELECT Col1, Col2, Col3, Weekno, COUNT(CT_Key) AS NbrOfRecords   
FROM 
( 
        SELECT   
         CASE  
         WHEN DATEDIFF(dd, Pull_Compl_Time, Pull_Req_Time) > 1 THEN DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)-480  
         ELSE DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)  
     END Col1,  
        CASE  
         WHEN DATEDIFF(dd, Manifest_Time, Invoice_Time) > 1 THEN DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)-480  
         ELSE DATEDIFF(mi, Invoice_Time, Manifest_Time)  
     END Col2,  
        DATEPART(Week,CT_Date) AS Weekno,  
        CT_Key,     
        substring(convert(varchar(23),convert(datetime,avg(convert(real,Cycle_Time))),121),12,5) AS Col3 
  FROM Cycle_Time 
	GROUP BY Cycle_Time.Pull_Compl_Time  
) AA 
GROUP BY Col1, Col2, Col3, Weekno

Open in new window

0
JessyRobinson1234Author Commented:
Msg 8120, Level 16, State 1, Line 1
Column 'Cycle_Time.Pull_Req_Time' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Msg 8120, Level 16, State 1, Line 1
Column 'Cycle_Time.Pull_Req_Time' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Msg 8120, Level 16, State 1, Line 1
Column 'Cycle_Time.Pull_Req_Time' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
0
Rajkumar GsSoftware EngineerCommented:
If I understood the above mentioned error, query should be like this

Raj
SELECT Col1, Col2, Col3, Weekno, COUNT(CT_Key) AS NbrOfRecords    
FROM  
(  
        SELECT    
         CASE   
         WHEN DATEDIFF(dd, Pull_Compl_Time, Pull_Req_Time) > 1 THEN DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)-480   
         ELSE DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)   
     END Col1,   
        CASE   
         WHEN DATEDIFF(dd, Manifest_Time, Invoice_Time) > 1 THEN DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)-480   
         ELSE DATEDIFF(mi, Invoice_Time, Manifest_Time)   
     END Col2,   
        DATEPART(Week,CT_Date) AS Weekno,   
        CT_Key,      
        substring(convert(varchar(23),convert(datetime,avg(convert(real,Cycle_Time))),121),12,5) AS Col3  
  FROM Cycle_Time  
        GROUP BY Pull_Compl_Time, Pull_Req_Time, Manifest_Time, Invoice_Time, CT_Date, CT_Key, Cycle_Time
) AA  
GROUP BY Col1, Col2, Col3, Weekno

Open in new window

0
JessyRobinson1234Author Commented:
Hi Raj,

No more errors, thank you. However, the result set is no longer grouping by week and gives me 244 rows. I should only get 10 rows since there were only 10 distinct weeks.

Jessy
0
Rajkumar GsSoftware EngineerCommented:
Can you post the create table script of the table(s) that we use in this query?

Also post your sample data.

This will surely help me to arrive to the solution soon.

Raj
0
JessyRobinson1234Author Commented:
Here you go. Thanks for all your help!
SE [Bus_Ops]
GO
/****** Object:  Table [dbo].[Cycle_Time]    Script Date: 04/06/2010 22:11:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Cycle_Time](
	[CT_Key] [int] NULL,
	[CT_Date] [datetime] NULL,
	[Ship_Key] [int] NULL,
	[Trailer_Nbr] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
	[Pull_Request] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
	[Pull_Req_Time] [datetime] NULL,
	[Pull_Req_Time_Two] [datetime] NULL,
	[Pull_Req_Time_Three] [datetime] NULL,
	[Pull_Req_Time_Four] [datetime] NULL,
	[Pull_Req_Time_Five] [datetime] NULL,
	[Fill_Rate] [nvarchar](10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
	[Driver_Time] [datetime] NULL,
	[Pull_Compl_Time] [datetime] NULL,
	[Val_Compl_Time] [datetime] NULL,
	[Manifest_Time] [datetime] NULL,
	[Invoice_Time] [datetime] NULL,
	[SED_Start_Time] [datetime] NULL,
	[Trailer_Load_Time] [datetime] NULL,
	[SED_Compl_Time] [datetime] NULL,
	[Driver_Arriv_Time] [datetime] NULL,
	[Driver_Depart_Time] [datetime] NULL,
	[Customs_Time] [datetime] NULL,
	[Border_Depart] [datetime] NULL,
	[Trailer_Arriv_Time] [datetime] NULL,
	[Cycle_Time] [datetime] NULL,
	[Comments] [nvarchar](max) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
	[Closed] [bit] NULL,
	[Rc_PR1_Inv] [bit] NULL,
	[Rc_PR2_Inv] [bit] NULL,
	[Rc_PR3_Inv] [bit] NULL,
	[Rc_PR4_Inv] [bit] NULL,
	[Rc_PR5_Inv] [bit] NULL,
	[Rc_VC_Inc_Pull] [bit] NULL,
	[Rc_VC_Inc_Part] [bit] NULL,
	[Rc_MS_Syst] [bit] NULL,
	[Rc_MS_Incorr] [bit] NULL,
	[Rc_IR_Syst] [bit] NULL,
	[Rc_IR_Incorr] [bit] NULL,
	[Rc_SED_Delay] [bit] NULL,
	[Rc_SED_Incorr] [bit] NULL,
	[Rc_SEDS_Incorr] [bit] NULL,
	[Rc_BA_Traffic] [bit] NULL,
	[Rc_BD_Red_Light] [bit] NULL,
	[File_Name] [nvarchar](1000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
	[File] [varbinary](max) NULL
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF

Open in new window

data.xlsx
0
Rajkumar GsSoftware EngineerCommented:
Well !

Post some sample data & your expected results based on that data.

This will help me to involve into your real situation.

Raj
0
Rajkumar GsSoftware EngineerCommented:
Oh... I just seen your attachment.
Hope it contains sample data & expected result.

I am trying to convert it to *.xls format...

Raj
0
Rajkumar GsSoftware EngineerCommented:
I checked the Excel. I think it is the result of my query.

Just post your sample data from 'Cycle_Time' table and your expected output based on that data.

This will help me.
Raj
0
JessyRobinson1234Author Commented:
Raj, This would my deisred outcome:

Week      Nbr Trailers      CT Avg      CT  Target    CT STDEV

5      24      3:38      3:00      3:57
7      11      4:02      3:00      5:38
8      16      1:52      3:00      4:17
9      18      1:56      3:00      5:34
10      24      2:51      3:00      8:28
11      30      4:17      3:00      10:29
12      22      4:36      3:00      2:34
13      17      4:08      3:00      2:41
Grand Total      163      3:24      3:00      6:33
0
JessyRobinson1234Author Commented:
I attached the file that has the raw data and the desired outcome in excel. Now I need to have all of this accomplished in MS SQL 2005. I hope this helps.
Jessy-ElPaso--6-.xlsx
0
Rajkumar GsSoftware EngineerCommented:
Good! Will be back after sometime.

Raj
0
Rajkumar GsSoftware EngineerCommented:
Well. First about this...

>>  However, the result set is no longer grouping by week and gives me 244 rows. I should only get 10 rows since there were only 10 distinct weeks.

To fix this, try this query . This query will group by distinct weeks and SUM up Col1, Col2 & Col3.

Check the result and let me know

Raj
SELECT	SUM(Col1) AS Col1, 
		SUM(Col2) AS Col2, 
		SUM(Col3) AS Col3, 
		Weekno, 
		COUNT(CT_Key) AS NbrOfRecords    
FROM  
(  
        SELECT    
         CASE   
         WHEN DATEDIFF(dd, Pull_Compl_Time, Pull_Req_Time) > 1 THEN DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)-480   
         ELSE DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)   
     END Col1,   
        CASE   
         WHEN DATEDIFF(dd, Manifest_Time, Invoice_Time) > 1 THEN DATEDIFF(mi, Pull_Req_Time, Pull_Compl_Time)-480   
         ELSE DATEDIFF(mi, Invoice_Time, Manifest_Time)   
     END Col2,   
        DATEPART(Week,CT_Date) AS Weekno,   
        CT_Key,      
        substring(convert(varchar(23),convert(datetime,avg(convert(real,Cycle_Time))),121),12,5) AS Col3  
  FROM Cycle_Time  
        GROUP BY Pull_Compl_Time, Pull_Req_Time, Manifest_Time, Invoice_Time, CT_Date, CT_Key, Cycle_Time
) AA  
GROUP BY Weekno

Open in new window

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
JessyRobinson1234Author Commented:
I get an error:
Msg 208, Level 16, State 1, Line 1
Invalid object name 'Cycle_Time'

0
JessyRobinson1234Author Commented:
Sorry discard previous comment. Error:

Msg 8117, Level 16, State 1, Line 1
Operand data type varchar is invalid for sum operator.
0
JessyRobinson1234Author Commented:
Raj, the problem seems to be with col3. Can you help?
BTW, thanks for all your help, this has been a great learning experience.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft SQL Server 2005

From novice to tech pro — start learning today.