Solved

UNION query problem

Posted on 2007-03-29
3
166 Views
Last Modified: 2010-03-20
hi i have this question on the go:

http://www.experts-exchange.com/Programming/Languages/SQL_Syntax/Q_22474564.html

but i'm stuck, and have spent the last 2 days trying to get this query to work, i'm close but i'm not there.

i need to link 4 tables:

Suppliers
Deliveries (all deliveries made by a supplier)
Complaints (all complaints raised against supplier)
Periods

i want to output a query showing a by month summary of supplier performance

looking like:
Month         Deliveries      OnTime      AvgLeadTime       Complaints
Jan2007          86                 80                  12.1                     2
Feb2007           0                   0                                               0
Mar2007          10                  10                   8.0                     0

now this needs to be generated for all suppliers regardless of whether we had delivieries or not, i.e a LEFT JOIN on tSuppliers
and i need to UNION ALL the tDeliveries and tComplaints
and then do a BETWEEN on the Period table

if that makes any sense! its 8pm here and i'm weary of this!

please help

i'm using:

SELECT l.sAcc, tP.Period, Sum(l.Deliveries) AS SumOfDeliveries, Sum(l.[On Time]) AS [SumOfOn Time], Sum(l.LeadTime) AS SumOfLeadTime, Sum(l.Complaints) AS SumOfComplaints
FROM [SELECT qDel.sAcc, Format([DueDate],"yyyy-mm") AS Period
, Count(qDel.Prod) AS [Deliveries]
, Sum(qDel.OnTime) AS [On Time]
, Avg(qDel.LeadTime) AS [LeadTime]
, 0 as Complaints
FROM qDel
GROUP BY qDel.sAcc, Format([DueDate],"yyyy-mm")
UNION ALL
SELECT tblSC_Report.Account, Format([Date],"yyyy-mm") AS Period, 0 , 0 , 0, Count(tblSC_Report.ComplaintNo)
FROM tblSC_Report
GROUP BY tblSC_Report.Account, Format([Date],"yyyy-mm")
]. AS l, tP
WHERE (((l.Period) Between [tp].[pfrm] And [tp].[pto]))
GROUP BY l.sAcc, tP.Period
ORDER BY l.sAcc, tP.Period;

see the other post, for examples of what worked and didnt.

Thanks G

i'm using Access 2003 and my experience (nor brain power!) is that high
0
Comment
Question by:GrahamLaws
3 Comments
 
LVL 50

Accepted Solution

by:
Lowfatspread earned 250 total points
ID: 18819040
is all you are now missing is month where there where no activity?

if so then you need a calendar table added to your query...

set up a table to contain all periods that are of interest to you ...

e.g.
reportperiod
periodDescription  char(7)  
Year smallint
month smallint
primary key (year,month)


then add it to your query as ...



 
0

Featured Post

MIM Survival Guide for Service Desk Managers

Major incidents can send mastered service desk processes into disorder. Systems and tools produce the data needed to resolve these incidents, but your challenge is getting that information to the right people fast. Check out the Survival Guide and begin bringing order to chaos.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
SQl Query to find x consecutive Nbrs in a Table 30 101
T-SQL Default value in Select? 5 51
Connection to multiple databases 13 35
table joins in qry 17 82
In database programming, custom sort order seems to be necessary quite often, at least in my experience and time here at EE. Within the realm of custom sorting is the sorting of numbers and text independently (i.e., treating the numbers as number…
I'm trying, I really am. But I've seen so many wrong approaches involving date(time) boundaries I despair about my inability to explain it. I've seen quite a few recently that define a non-leap year as 364 days, or 366 days and the list goes on. …
Nobody understands Phishing better than an anti-spam company. That’s why we are providing Phishing Awareness Training to our customers. According to a report by Verizon, only 3% of targeted users report malicious emails to management. With compan…
In an interesting question (https://www.experts-exchange.com/questions/29008360/) here at Experts Exchange, a member asked how to split a single image into multiple images. The primary usage for this is to place many photographs on a flatbed scanner…

713 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