2011-11-25 21 views
1

私は2つのテーブルを更新するための手続きを書こうとしていますが、シンタックスには少し残っています。この更新ステートメントを記述する正しい方法は何ですか?

テーブルの名前はSupportTicketsTbltblSupportEventで、これらのテーブルのリンクはtblTicketsInEventsという3番目のテーブルです。

tblSupportEventは人のスケジュール内にあるすべてのイベントのリストを持ち、各イベントは開始時刻と終了時刻を持ちます。このプロシージャはSQLジョブとして実行され、現在の時刻がイベント終了時刻よりも大きいかどうかを確認します。その状態を更新します。このための構文は簡単です

は今:

UPDATE 
    tblSupportEvent 
SET 
    [status] = 3 
WHERE 
    eventend < CURRENT_TIMESTAMP 
AND 
    [status] = 1 

は今ここに私の問題があり、イベントはチケットにリンクされているので、チケットにリンクされているイベントは、私はに割り当てられたチケットを設定したい期限切れになったとき値は、バック0

このSELECTクエリは、テーブル間の関係を示しています。私はこの問題を解決するために考えることができます

SELECT 
    * 
FROM 
    tblSupportEvent e 
JOIN 
    tblTicketsInEvents tie 
ON 
    e.id = tie.eventID 
JOIN 
    SupportTicketsTbl t 
ON 
    t.TicketID = tie.ticketID 

方法が選択することですすべての期限切れのチケットIDをテーブルに入れてから、SupportTicketsTblのチケットIDが私のテーブル変数にあるところで更新を行います。これはちょっと面倒です。更新ステートメント/結合などでこれを行うより良い方法はありますか?

私は自分自身で問題を解決することができますが、これを行う正しい方法を知っているように、おそらく十分速いIDを実行するためです。

ありがとうございます

答えて

3

私はこのようにすると、一時テーブルを作成するよりもうまくいくと思います。

+0

ありがとう、私は笑、良い答えを見たことがあります。 – Purplegoldfish

関連する問題