2011-06-19 12 views
0

私はSQLで何かをしようとしています。それを自分自身に教えて、次に何をしたいのか分かりません。COUNT()を使用して一致する値の数を返すためのロジック

私は自分のDBを使って自分の名前、仕事をしている仕事を返しますが、最も重要なのは各仕事に「完了」ジョブがどのように完了したかを示す「コード」と、特定の完了コードで何回ジョブを実行したかを示すintです。

今のところ、すべての情報を人物、職業、コード順に返すことができますが、個々の完了コード(従業員一人あたり)の数を取得する方法はわかりません。

SELECT crew.EMPLOYEE_NAME, o.WORK_TYPE, oc.COMPLETION_CODE, COUNT(oc.COMPLETION_CODE) 
FROM CREW_WORK_SCHEDULE crew, ORDERS o, ORDER_COMPLETION oc 
WHERE crew.CREW_ID = o.ASSIGNED_TO_USER_ID 
AND oc.ORDER_ID = o.ORDER_ID 
ORDER BY (crew.EMPLOYEE_NAME, o.WORK_TYPE, oc.COMPLETION_CODE) 

しかし、select文でそのCOUNTはちょうど完了コードの総数ではなく、従業員の仕事のタイプの各コードについて1が返されます:ここで私が持っているものです。

申し訳ありませんが、完全にはっきりしていない場合は、誰にも分かりますか?その後、

答えて

3

GROUP BYステートメントに見て、 グループ化crew.EMPLOYEE_NAME、o.WORK_TYPE、oc.COMPLETION_CODE

2
SELECT crew.EMPLOYEE_NAME, o.WORK_TYPE, oc.COMPLETION_CODE, (SELECT COUNT(*) FROM ...) 

楕円であなたの条件に取って代わります。私があなたのテーブル構造を知らないので、それを書くのは難しいです。

+0

ああ、意味があります、私はそれを使用して調べます。ありがとう! – zomgcopters

+0

問題ありません!それはサブクエリbtwとして知られています –

+0

あなたがフォローアップqを求める以前のコメントを持っているのかどうかわかりませんが、私は私の問題を解決し、これを働かせました。ありがとう! – zomgcopters

関連する問題