2011-12-06 2 views
0

1つのテーブルと2つのビューから日付を引っ張る列がたくさんあるテーブルを作成する必要があります。列を表示するには問題ありません。この問題は、最初の2人の異なる医師(doctor_1とdoctor_2)からサービスを受けた患者を示すために、2つの列を別名にしなければならないときに発生します。各医師は独自のIDを持っています。私は "別のトップ(2)"、 "ランク"などを使用すべきかどうかはわかりません。第一と第二医者を表示して患者を診察するにはどうすればいいですか?

日、姓、姓、住所、市、州、郵便番号、Hostital、ルーム、Doctor_1、Doctor_2

任意の助けいただければ幸いです。

+0

何ですか?私はあなたが何を求めているのか分かりません。すべてのデータを保管するのに十分な列がないと言っていますか?もしそうなら、列を追加してください。 –

+0

いいえ、私はそれを言っていません。私は医者が患者を見た第1回と第2回をどのように追加するのか分かりません。 Doctor_1とDoctor_2の列は、患者を見た2つの異なる医師IDで作成されます。どのようにして各医師の日付を取得し、最初に(doctor_1)、2番目(doctor_2)の順番でIDを列挙し、そのすべてを他のすべての患者に対して繰り返すのですか? – user1084523

+0

申し訳ありませんが、わかりません。 –

答えて

0

のは、次のようにあなたのテーブルが何かに見えると仮定しましょう:その場合は

doctor_patients: 

doctor_id int, 
patient_id int, 
visit_date datetime 

次のようなクエリを記述することができます

select a.patient_id, b.doctor_id as doctor_1, b.visit_time_max as doctor_1_visit_time, a.doctor_id as doctor_2, max(a.visit_time) as doctor_2_visit_time 
from doctor_patients a 
inner join 
(select patient_id, doctor_id, max(visit_time) as visit_time_max 
from doctor_patients 
where visit_time < a.visit_time 
and patient_id = a.patient_id 
and doctor_id = a.doctor_id) b 

あなたは常に最後尾にWHERE句を置くことができますフィルタを「a」テーブルに適用します。私はSQL上でそれを試していないので、このクエリがそのまま実行されるかどうかはわかりません。しかし、これがあなたに何をする必要があるかについての一般的な考えを与えることを願っています。最新のSQL機能を使用してこれを達成するより良い方法があるかもしれませんが、これはあなたを圧倒させるでしょう。私はこれがあなたが探していた答えだと願っています!

関連する問題