Solved

Count from two tables

Posted on 2008-06-22
9
263 Views
Last Modified: 2012-06-27
Following situation:
Table 1:
Emp_ID
Emp_Name


Table 2:
Trans_ID
Emp_ID



Goal:
I need a report that displays ALL records from Table 1 and displays then number of related records in Table 2.
It should also show records from Table 1 if there are NO records in Table 2. (i.e. result would be Employee Nr. 712 = 0 transactions)

How do I do this in Crystal Reports?
DB is DB2.
Do I need to make queries for this, or can I count in the report itself?
How would the queries look like?

THANKS A LOT
0
Comment
Question by:olio
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
  • 2
  • +2
9 Comments
 
LVL 28

Accepted Solution

by:
Bill Bach earned 200 total points
ID: 21840900
Two ways, depending on the capabilities of the SQL engine:

SELECT Emp_ID, Emp_Name, (SELECT COUNT(*) FROM Table2 WHERE Table2.Emp_ID = Table1.Emp_ID) FROM Table1

SELECT Emp_ID, Emp_Name, COUNT(*) FROM Table1
LEFT OUTER JOIN Table2 WHERE Table2.Emp_ID = Table1.Emp_ID
GROUP BY Emp_ID, Emp_Name
0
 
LVL 37

Assisted Solution

by:momi_sabag
momi_sabag earned 100 total points
ID: 21841009
i would use BillBach second suggestion
the first one is very bad in terms of perfromance if you have many rows
it's query needs a slight modification:

SELECT Emp_ID, Emp_Name,  sum(case t2.Emp_ID when null then 0 else 1 end)
FROM Table1 t1
LEFT OUTER JOIN Table2  t2 WHERE t2.Emp_ID = t1.Emp_ID
GROUP BY Emp_ID, Emp_Name

this is the correct
his query will return 1 if no rows exist for a given id, and not 0 as you requested
0
 
LVL 37

Assisted Solution

by:momi_sabag
momi_sabag earned 100 total points
ID: 21841012
if the above returns sytax error then try

SELECT Emp_ID, Emp_Name,  sum(case when t2.Emp_ID is null then 0 else 1 end)
FROM Table1 t1
LEFT OUTER JOIN Table2  t2 WHERE t2.Emp_ID = t1.Emp_ID
GROUP BY Emp_ID, Emp_Name

0
What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.

 
LVL 1

Author Comment

by:olio
ID: 21841078
can i use this right in Crystal Report?
I have no direct access to DB2.
I can just create reports.
This is the difficulty in the organziational setup.
0
 
LVL 37

Expert Comment

by:momi_sabag
ID: 21841202
you can create a view in db2 that runs the abobe query and then you can just query that view as if it was a regular table
0
 
LVL 101

Expert Comment

by:mlmcc
ID: 21847723
Yes, you can add the SQL as a Crystal COMMAND when you set the database source.

If you prefer there are ways to get the counts in Crystal.

mlmcc
0
 
LVL 1

Author Comment

by:olio
ID: 21850450
I prefer to count in Crystal an not with an SQL command.
How would that be done mlmcc?
0
 
LVL 101

Assisted Solution

by:mlmcc
mlmcc earned 100 total points
ID: 21851342
The SQL command will be faster than in Crystal.

There are a couple of ways of counting in Crystal.
Easy way if you are counting all records
Right click a field in the report
Click INSERT --> SUMMARY
Choose type as COUNT
CHoose the appropriate group or report footer.

If you are trying to count distinct values use DISTINCT COUNT

You can also use a variable or running total to do the counting.
If summaries don't work I'll explain those.

mlmcc
0
 
LVL 35

Assisted Solution

by:James0628
James0628 earned 100 total points
ID: 21851610
As mlmcc said, you can use a Count summary.

 Of course you also need to get your tables in the report, and in case you're not sure how to do that ...

 Add the tables to the report, link Table1 to Table2 on Emp_ID (or whatever fields are appropriate) and make the link a LEFT OUTER JOIN, so that records from Table1 will be included even if there are no corresponding records in Table2.

 James
0

Featured Post

Stressed Out?

Watch some penguins on the livecam!

Question has a verified solution.

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

Microsoft Access is a place to store data within tables and represent this stored data using multiple database objects such as in form of macros, forms, reports, etc. After a MS Access database is created there is need to improve the performance and…
In this blog post, we’ll look at how ClickHouse performs in a general analytical workload using the star schema benchmark test.
Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…
This is a high-level webinar that covers the history of enterprise open source database use. It addresses both the advantages companies see in using open source database technologies, as well as the fears and reservations they might have. In this…

688 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