2012-03-30 6 views
0

私は、訓練を追跡するWebベースのアプリケーションを開発しています。会社内の各従業員について、各コースの各部門の完了率を表示するにはどうすればよいですか?

です。私はその番組のチャートまたはテーブルを実装するを持っている

(各テーブルの最初の属性は、最後のテーブルを除き、主キーである)

:私は、次のデータベース

デザインを持っていますこれらのコースの各コースの各部門の完了率はですが、このクエリをどのように考え出すか分かりません。クエリにはDivisionName、CourseName、各コースの参加者数、完了率が表示されます

このクエリで私を助けてくれますか?

+2

コースの完了を示すものは何ですか? – RedFilter

+0

完了率は、コースを受講した参加者または従業員の総数/その部門の従業員の総数を意味します。 Employee_Course Table:取られたまたは完了したコースのIDを持つ従業員のユーザー名を表示します –

答えて

0
select a.DivisionName, a.CourseName, a.ParticipantsCount, ParticipantCount/EmployeeCount * 100 as PercentCompleted 
from (
    select DivisionName, count(*) as EmployeeCount 
    from Division d 
    inner join Employee e on d.DivisionCode = e.DivisionCode 
    group by DivisionName 
) dc 
inner join (
    select d.DivisionName, c.CourseName, count(*) as ParticipantCount 
    from Course c 
    inner join Employee_Course ec on c.CourseID = ec.CourseID 
    inner join Employee e on ec.Username = e.Username 
    inner join Division d on e.DivisionCode = d.DivisionCode 
    group by DivisionName, CourseName 
) a on dc.DivisionName = a.DivisionName 
+0

あなたに助けてくれてありがとう。 SQLServer Management Studioでクエリを実行しようとしましたが、次のエラーが発生しました。理由はわかりません:メッセージ156、レベル15、状態1、行8 'OUTER'というキーワードの構文が正しくありません。 メッセージ102、レベル15、状態1、行15 'a'の近くの構文が正しくありません。 –

+0

彼は内部の外部結合を行った、おそらくタイプミス、内側の結合であるべきだと思う – mattytommo

+0

@MohammedAliタイプミス、上に固定 – RedFilter

関連する問題