Solved

Subqueries with Aggregates and Constants

Posted on 2009-05-19
5
310 Views
Last Modified: 2012-05-07
Problem:  Need to transform data from horizontal to vertical.  IE

Part           Date           Defect1     Defect2
123         5/1/2009           5               6

To

Part           Date            Defect       DefectTotal
123         5/1/2009       Defect1             5
123         5/1/2009       Defect2             6

I am pretty sure this needs to be done with a sub query and I am not sure how to create it.  

I have attached a snip of code.  Can you tell me where to enter the subquery to Keep updated the Fields Defect and DefectTotal?

Thanks
Select 'ColdSpots' As Defect,Sum(ColdSpot) as DefectTotal, 

	From SCRAP

Where Dt between '5/1/2009' and '5/20/2009'

Open in new window

0
Comment
Question by:Jlucht
  • 3
  • 2
5 Comments
 
LVL 60

Expert Comment

by:chapmandew
Comment Utility
how many columns total do you have?  ie Defect1, Defect2, etc.
0
 
LVL 3

Author Comment

by:Jlucht
Comment Utility
15 defects in total
0
 
LVL 60

Accepted Solution

by:
chapmandew earned 500 total points
Comment Utility
easy way to do it in 2000 (2005 would be different)
declare @date1 datetime, @date2 datetime
select @date1 = '5/1/2009', @date2 = '5/20/2009'

select part, date, defect = 'Defect1' , defecttotal = Defect1
From SCRAP
Where Dt between @date1 and @date2
UNION ALL
select part, date, defect = 'Defect2' , defecttotal = Defect2
From SCRAP
Where Dt between @date1 and @date2

....et.al.
0
 
LVL 3

Author Comment

by:Jlucht
Comment Utility
That is the code that I need to do what I need.  One more question.  How would I insert that record set into a table.


Below is the code that I used to do it.  I had to change a couple of things.  

Thanks ALOT!!!

Joe




declare @date1 datetime, @date2 datetime

select @date1 = '5/1/2009', @date2 = '5/20/2009'
 

select Distinct partnum, defect = 'Holes' , defecttotal = Sum(Hole)

From SCRAP

Where Dt between @date1 and @date2

Group By Scrap.PartNum

UNION ALL

select Distinct partNum, defect = 'ColdSpot' , defecttotal = Sum(ColdSpot)

From SCRAP

Where Dt between @date1 and @date2

Group By Scrap.PartNum

Open in new window

0
 
LVL 3

Author Closing Comment

by:Jlucht
Comment Utility
Thanks for everything
0

Featured Post

Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

Suggested Solutions

Hi, I am very much excited today since I'm going to share something very exciting Tool used for Analytical Reporting and that's nothing but MICROSTRATEGY. Actually there are lot of other tools available in the market for Reporting Such as Co…
JSON is being used more and more, besides XML, and you surely wanted to parse the data out into SQL instead of doing it in some Javascript. The below function in SQL Server can do the job for you, returning a quick table with the parsed data.
This videos aims to give the viewer a basic demonstration of how a user can query current session information by using the SYS_CONTEXT function
Using examples as well as descriptions, and references to Books Online, show the documentation available for datatypes, explain the available data types and show how data can be passed into and out of variables.

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now