2012-04-03 9 views
0

私は、ユーザーからデータを取得し、自分のキャリア情報に基づいてその日に行う必要がある作業を表示するWebサイトに取り組んでいますsprocの詳細if条件を追加するには?

データベース "Manager"に2つのメインテーブルがあり、 "ワーカー"。

ユーザーがデータを入力すると、返されたIDは自分のタイプと表示されます。 それから私はIDと日付をとり、その日の仕事を得ます。

私が考えているのは、このIDがマネージャテーブル&に見つかったかどうかをチェックする条件です。関連するタスクを取得するか、それ以外の場合はワーカーに関連するタスクを取得します。

しかし、前にSPROCで条件を書いたことはありません。x = <> ...などの場合は、私が見つけたものはすべてです。

だから、あなたは私にそれがどのように書かれているか、または同様の状況を指す有用なチュートリアルや記事があるかどうかを教えてもらえますか?

ありがとうございます。

答えて

1

このような何か試してみてください:

IF EXISTS(SELECT ManagerID FROM Managers WHERE ManagerID = @ID) BEGIN 

    --select from manager tasks 

END 
ELSE BEGIN 

    --select worker tasks 

END 

を私はあなたが求めて何だと思うので、今、私は私自身の2セントを追加します。スキーマを編集できるかどうかはわかりませんが、マネージャとワーカーを単一のテーブルに入れて型の列を追加する方が理にかなっていませんか?もしあなたがそれをしたら、これのどれも必要ではありません。

+0

これはまさに私が必要とするものです。どうもありがとうございます。 – OnlyHope

+0

喜んで助けてください。あなたが満足すれば答えを記入することを忘れないでください。 –

+0

私のアカウントはまだ投票を行うことはできませんが、あなたはそれに値するでしょう。 – OnlyHope

1

あなたの質問は..私はあなたのユーザー(USER_ID)は上司のテーブルや、あなたの労働者のテーブルに存在するかどうかを知りたいと思う

..

お聞きしたいもののようにやや混乱してあなたは簡単に以下のクエリで見つけることができ

..あなたが簡単にあなたのユーザー型情報ことを識別することができ、このu_type値の助けによってそう

select 'Manager' as u_type from manager 
where manager_id = <user_id> 
union all 
select 'Worker' as u_type from worker 
where worker_id = <user_id> 

...

その後

あなたは日賢明でデータを取ることは非常に簡単です述べたように...

あなたは

l_u_typeがローカル変数である、となります
select u_type 
into l_u_type 
from 
(
    select 'Manager' as u_type from manager 
    where manager_id = <user_id> 
    union all 
    select 'Worker' as u_type from worker 
    where worker_id = <user_id> 
) 

としてストアドプロシージャで使用することができ、このクエリvarchar2またはデータ型

+0

ありがとうたくさんのPratik :) 非常に参考になりました。 – OnlyHope

+0

:)あなたは大歓迎です... –

関連する問題