I have three tables that I am trying to draw information from with an OUTER JOIN.  I need to use an OUTER JOIN because I need to see all rows from the first table, even if there are no corresponding entries in the second and third table.  If I issued the command:

SELECT T1.grpid, T1.name, COUNT (DISTINCT T2.colid), COUNT T3.itemid FROM groups T1, collections T2, items T3 WHERE T1.grpid = T2.grpid AND T2.colid = T3.colid GROUP BY T1.grpid, T1.name

I get:
0   Group 0      10   38
2   Group 2      22   450
etc...

There is a Group 1, but it has no collections, and therefor no items.  A group can have 0 to many collections, a collection can have 1 to many items.  Each item must belong to one collection, and each group must belong to one collection.  I want to see a print out like:
0   Group 0      10   38
1   Group 1        0      0
2   Group 2      22   450

I tried:
SELECT T1.gprid, T1.name, COUNT (DISTINCT T2.colid), COUNT T3.itemid FROM groups T1 LEFT OUTER JOIN collections T2 ON T1.grpid = T2.grpid, LEFT OUTER JOIN items T3 ON T2.colid = T3.colid GROUP BY T1.grpid, T1.name
but I get error: Syntax is incorrect for the command SELECT (2045).

If I enter:
SELECT T1.gprid, T1.name, COUNT (DISTINCT T2.colid) FROM groups T1 LEFT OUTER JOIN collections T2 ON T1.grpid = T2.grpid GROUP BY T1.grpid, T1.name
I get:
0   Group 0      10
1   Group 1        0
2   Group 2      22

Can I use multiple OUTER JOIN statements?  If not, is there a way to get what I want without creating a temporary table?

                                              Thanks,
                                              Jason
-- 
Jason Kramer
University Archives and Records Management
002 Pearson Hall
(302) 831 - 3127 (voice)
(302) 831 - 6903 (fax)




Reply via email to