私はasp.net VBで書かれたプロジェクトとmssqlを使っているimを引き継いでいます。ユーザーがクリックを提出したときにjoinコマンドを逆にする
私は私がやりたいどのような施設(FacName)のテキスト値を持つテキストボックス
を持っているが、プログラムは見上げ、テキストボックスに入力されたテキストを取ります施設テーブルを検索し、施設名を見つけ、施設IDと一致させ、および、エピソード施設ID列を更新する。ここで
は私の二つの表のとおりです。
Episode Facilities
ID__________FacilityID | ID__________FacName
1___________10 | 10__________Beenleigh
2___________14 | 14__________Sunnybank
3___________15 | 15__________Brisbane
ユーザーが別の施設を指すようにエピソードを更新 - '、この場合には、新しいfacililityを参照するために、彼らはEpisode.ID「2」をしたいとしましょうブリスベン」
彼らテキストボックスに入力ブリスベンと提出ヒット、となるエピソード表の結果:
Episode Facilities
ID__________FacilityID | ID__________FacName
1___________10 | 10__________Beenleigh
2___________15 | 14__________Sunnybank
3___________15 | 15__________Brisbane
施設]タブで検索を行うので、その種le.FacilityID列
私はよく働くために私の選択した声明を得ました、うまくいけば誰かが私の質問に答えるのを助けるでしょう! 動作していないUPDATE声明
SELECT Episode.ID, Episode.NOCSID, Episode.Disease, Episode.PHUID,
Episode.Status, Episode.Date, Episode.PersonID, Episode.ChangeType,
Episode.ChangeBy, Episode.ChangeDate, Episode.DoctorID,
Episode.FacilityID, Episode.OnsetDate, Episode.CloseDate,
Episode.Duplicate, Episode.OutbreakID, Episode.ClinicalLead,
Episode.NextActionDate, Facilities.FacName, Facilities.ID AS Expr1
FROM Episode
LEFT OUTER JOIN Facilities
ON Episode.FacilityID = Facilities.ID WHERE (Episode.ID = @ID)
:
Becuase I:ので、ここで
UPDATE Episode
SET NOCSID = @NOCSID,
Disease = @Disease,
PHUID = @PHUID,
Status = @Status,
PersonID = @PersonID,
ChangeType = 'Updated',
ChangeBy = @ChangeBy,
ChangeDate = GETDATE(),
DoctorID = @DoctorID,
OnsetDate = @OnsetDate,
CloseDate = @CloseDate,
Duplicate = @Duplicate,
OutbreakID = @OutbreakID,
ClinicalLead = @ClinicalLead,
NextActionDate = @NextActionDate,
FacilityID = @FacilityID
FROM Episode
INNER JOIN Facilities
ON Episode.FacilityID = Facilities.FacName
WHERE (Episode.ID = @original_ID)
AND (Episode.NOCSID = @original_NOCSID
OR Episode.NOCSID IS NULL
AND @original_NOCSID IS NULL)
AND (Episode.Disease = @original_Disease)
AND (Episode.PHUID = @original_PHUID)
AND (Episode.Status = @original_Status)
AND (Episode.PersonID = @original_PersonID
OR Episode.PersonID IS NULL
AND @original_PersonID IS NULL)
AND (Episode.DoctorID = @original_DoctorID
OR Episode.DoctorID IS NULL
AND @original_DoctorID IS NULL)
AND (Episode.FacilityID = @original_FacilityID
OR Episode.FacilityID IS NULL
AND @original_FacilityID IS NULL)
AND (Episode.OnsetDate = @original_OnsetDate
OR Episode.OnsetDate IS NULL
AND @original_OnsetDate IS NULL)
AND (Episode.CloseDate = @original_CloseDate
OR Episode.CloseDate IS NULL
AND @original_CloseDate IS NULL)
AND (Episode.Duplicate = @original_Duplicate
OR Episode.Duplicate IS NULL
AND @original_Duplicate IS NULL)
AND (Episode.OutbreakID = @original_OutbreakID
OR Episode.OutbreakID IS NULL
AND @original_OutbreakID IS NULL)
AND (Episode.ClinicalLead = @original_ClinicalLead
OR Episode.ClinicalLead IS NULL
AND @original_ClinicalLead IS NULL)
AND (Episode.NextActionDate = @original_NextActionDate
OR Episode.NextActionDate IS NULL
AND @original_NextActionDate IS NULL)
私はまだあなたが求めていることではっきりしていません。私がこれを読んでいるところでは、外部キー(Episode.FacilityID)を更新したいように思えます。これはタイプミスですか? – Dustin
DropDownListを使ってみませんか?あなたがユーザー入力に基づいて存在しない場合、新しい施設を作りたいですか? –
Dustin - FacName列でFacilityテーブルを検索し、一致するIDを取得し、EpisodeテーブルのFacilityID列を更新します。私は実際にユーザーの入力に基づいてjqueryドロップダウンリストを持っています。以前のリビジョンではドロップダウンが使用されましたが、何千もの結果が出ていました。 –