Solved

Subqueries with Aggregates and Constants

Posted on 2009-05-19
5
311 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
ID: 24422634
how many columns total do you have?  ie Defect1, Defect2, etc.
0
 
LVL 3

Author Comment

by:Jlucht
ID: 24422694
15 defects in total
0
 
LVL 60

Accepted Solution

by:
chapmandew earned 500 total points
ID: 24422778
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
ID: 24424446
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
ID: 31583029
Thanks for everything
0

Featured Post

[Webinar] Disaster Recovery and Cloud Management

Learn from Unigma and CloudBerry industry veterans which providers are best for certain use cases and how to lower cloud costs, how to grow your Managed Services practice in IaaS clouds, and how to utilize public cloud for Disaster Recovery

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

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…
Jaspersoft Studio is a plugin for Eclipse that lets you create reports from a datasource.  In this article, we'll go over creating a report from a default template and setting up a datasource that connects to your database.
Via a live example, show how to extract insert data into a SQL Server database table using the Import/Export option and Bulk Insert.
Viewers will learn how to use the SELECT statement in SQL to return specific rows and columns, with various degrees of sorting and limits in place.

896 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