Oracle Development
 
Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
User Name:
Password:
Remember me
Go Back   Dev Shed ForumsDatabasesOracle Development

Reply
Add This Thread To:
  Del.icio.us   Digg   Google   Spurl   Blink   Furl   Simpy   Y! MyWeb 
Thread Tools Search this Thread Rate Thread Display Modes
 
Unread Dev Shed Forums Sponsor:
  #1  
Old November 4th, 2004, 08:18 AM
code.commander code.commander is offline
Registered User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Sep 2004
Posts: 25 code.commander User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: 46 m 41 sec
Reputation Power: 0
Inner joins and aliases

Hello,

I am converting a sql server 2000 sql statement, that I know works, to an oracle compliant version. However, I am running into some great difficulty getting it to work.

Pretend there are 2 tables,
Table: Student
Columns: ID, Name

Table: Course
Columns: ID, CourseName, StudentId, CourseType
(StudentId is a foreign key to the student table)

I want to get a count of all math courses that a student is taking. I also want to get the course names. I MUST use an outer join (the reason why is because these tables are simplistic versions of my real tables)

For my sql server statement, I have:
SELECT s.[ID], s.[Name], c.CourseName, c.CourseCount
FROM Student s
LEFT OUTER JOIN (SELECT count(*) as 'CourseCount', CourseName, StudentId
FROM Course WHERE CourseType='Math') c ON s.[ID] = c.StudentId


Thank you for your help. It is very appreciated!

Reply With Quote
  #2  
Old November 4th, 2004, 11:42 AM
swampBoogie swampBoogie is offline
Contributing User
Dev Shed Intermediate (1500 - 1999 posts)
 
Join Date: Jan 2003
Location: Paris Uppland
Posts: 1,784 swampBoogie User rank is Sergeant Major (2000 - 5000 Reputation Level)swampBoogie User rank is Sergeant Major (2000 - 5000 Reputation Level)swampBoogie User rank is Sergeant Major (2000 - 5000 Reputation Level)swampBoogie User rank is Sergeant Major (2000 - 5000 Reputation Level)swampBoogie User rank is Sergeant Major (2000 - 5000 Reputation Level)swampBoogie User rank is Sergeant Major (2000 - 5000 Reputation Level) 
Time spent in forums: 2 Weeks 4 Days 21 h 42 m 49 sec
Reputation Power: 37
From your description it seems as you want

Code:
SELECT s.ID, 
       s.Name, 
       c.CourseName, 
  (select count(*) 
     from course 
    where courceType = 'Math'
      and studentid = c.studentid as ) CourseCount
FROM Student s
LEFT OUTER JOIN Course c ON s.ID = c.StudentId
and c.courseType = 'Math'


If not, supply further details such as table layout, sample data and expected result.


The query you posted will not work in any DBMS since you are mixing aggregate functions and columns without a group by in the derived table.

Reply With Quote
Reply

Viewing: Dev Shed ForumsDatabasesOracle Development > Inner joins and aliases


Thread Tools  Search this Thread 
Search this Thread:

Advanced Search
Display Modes  Rate This Thread 
Rate This Thread:


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
View Your Warnings | New Posts | Latest News | Latest Threads | Shoutbox
Forum Jump


Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
  
 





© 2003-2008 by Developer Shed. All rights reserved. DS Cluster 3 hosted by Hostway
Stay green...Green IT