Solved

complex Query (working out totals)

Posted on 2011-03-25
8
192 Views
Last Modified: 2012-05-11
Hi,

I would like help with a quite complex SQL statement.  It involves 2 tables.

The first table (table1) look like this:

table1

identifier      Req      Parent
ID-001      5      FM
ID-002      4      FM
ID-003      12      FM
ID-004      21      PL
ID-005      40      FM
ID-006      1      PL
ID-007      10      PL
ID-008      8      FM

The second table (table2) looks like this

identifier      QTY
ID-001      2
ID-001      4
ID-001      1
ID-002      30
ID-004      40
ID-002      1
ID-007      10
ID-008      8

I’m trying to produce a recordset that could populate a list control with the data that would result from following these steps:

1.      Select table1.identifiers where table1.Parent = FM.
2.      For each row in table2 search table.identifer for a matching record, then add up the table2.QTY values for resulting records found
3.      Zero should added where no values can be found

Given the example above it should produce the following results:

identifier      Req      qty
ID-001      5      7
ID-002      4      31
ID-003      12      0
ID-005      40      0
ID-008      8      8

Could this be done?
0
Comment
Question by:andyw27
  • 3
  • 3
  • 2
8 Comments
 
LVL 4

Accepted Solution

by:
davehilditch earned 250 total points
Comment Utility
select a.identifer, a.req, sum(b.qty) as qty
from table1 as a
left join table2 as b
on a.identifier = b.identifier
group by a.identifier, a.req
0
 
LVL 4

Expert Comment

by:davehilditch
Comment Utility
actually, that will give nulls for id3 and id5 so modify the sum(b.qty) part to:

isnull(sum(b.qty), 0) as qty
0
 
LVL 119

Assisted Solution

by:Rey Obrero
Rey Obrero earned 250 total points
Comment Utility
is this in access?

SELECT tbl1.identifier, tbl1.req, nz(Sum(tbl2.qty),0) AS Totqty
FROM tbl1 LEFT JOIN tbl2 ON tbl1.identifier = tbl2.identifier
WHERE tbl1.parent="fm"
GROUP BY tbl1.identifier, tbl1.req;
0
 

Author Comment

by:andyw27
Comment Utility
Thanks for the suggestion, just trying to get them to work within a vba function.
0
Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

 

Author Comment

by:andyw27
Comment Utility
yes its access.
0
 
LVL 119

Expert Comment

by:Rey Obrero
Comment Utility
i suggest that you try the query first,

and post your vba codes here so we can correct it.
0
 

Author Comment

by:andyw27
Comment Utility
Excellent got it to work, if you are both happy I'll do a 50/50 split of points for this.
0
 
LVL 4

Expert Comment

by:davehilditch
Comment Utility
that's cool by me - it's up to you how you split the points anyway
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

This article explains how to reset the password of the sa account on a Microsoft SQL Server.  The steps in this article work in SQL 2005, 2008, 2008 R2, 2012, 2014 and 2016.
International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
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.
In Microsoft Access, learn how to use Dlookup and other domain aggregate functions and one method of specifying a string value within a string. Specify the first argument, which is the expression to be returned: Specify the second argument, which …

772 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

11 Experts available now in Live!

Get 1:1 Help Now