Solved

complex Query (working out totals)

Posted on 2011-03-25
8
197 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
ID: 35215129
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
ID: 35215138
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 120

Assisted Solution

by:Rey Obrero (Capricorn1)
Rey Obrero (Capricorn1) earned 250 total points
ID: 35215246
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
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:andyw27
ID: 35215398
Thanks for the suggestion, just trying to get them to work within a vba function.
0
 

Author Comment

by:andyw27
ID: 35215407
yes its access.
0
 
LVL 120

Expert Comment

by:Rey Obrero (Capricorn1)
ID: 35215466
i suggest that you try the query first,

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

Author Comment

by:andyw27
ID: 35216361
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
ID: 35216654
that's cool by me - it's up to you how you split the points anyway
0

Featured Post

Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Describes a method of obtaining an object variable to an already running instance of Microsoft Access so that it can be controlled via automation.
This article describes a method of delivering Word templates for use in merging Access data to Word documents, that requires no computer knowledge on the part of the recipient -- the templates are saved in table fields, and are extracted and install…
Learn how to number pages in an Access report over each group. Activate two pass printing by referencing the pages property: Add code to the Page Footers OnFormat event to capture the pages as there occur for each group. Use the pages property to …
Using Microsoft Access, learn some simple rules for how to construct tables in a relational database. Split up all multi-value fields into single values: Split up fields that belong to other things into separate tables: Make sure that all record…

749 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