Gay*_*ayu 5 sql sql-server sql-server-2012
我有像"床"和"PatientRecord"这样的表格.我想为病人分配一张空床(即来自Bed table的bID,状态="可用"),然后将该bID状态更改为"Occupied".请帮忙.以下是我当前的查询,但我不确定如何继续.
update Patient_Record
set b_ID = (select top 1 b_ID from bed where Status_Avai_Occ = 'Available')
/*i want to change the status of this b_ID to "Occupied"*/
where Admission_Type = 'In Patient'
Run Code Online (Sandbox Code Playgroud)
这将更新所有 PatientRecords 并设置Admission_Type =In Patient
我不确定我是否完全理解你的结构,但你可以这样做:
DECLARE @AvailableBID INT
SELECT TOP 1 @AvailableBID = b_ID FROM bed WHERE Status_Avai_Occ = 'Available'
UPDATE Patient_Record
SET b_ID = @AvailableBID
WHERE Admission_Type = 'In Patient'
UPDATE bed
SET Status_Avai_occ = 'Occupied'
WHERE b_ID = @AvailableBid
Run Code Online (Sandbox Code Playgroud)
请注意,这仍会更新所有 Patient_records,其中包含 Patient_Type In Patient。您将需要应用额外的过滤器,即行号。
http://sqlfiddle.com/#!6/fa26d/9
从评论中编辑
DECLARE @AvailableBID INT
DECLARE @AvailablePatientRecord INT
SELECT TOP 1 @AvailableBID = b_ID FROM bed WHERE Status_Avai_Occ = 'Available'
SELECT TOP 1 @AvailablePatientRecord = PatientRecordId FROM Patient_Record WHERE Admission_Type = 'In Patient'
UPDATE Patient_Record
SET b_ID = @AvailableBID
WHERE PatientRecordId = @AvailablePatientRecord
UPDATE bed
SET Status_Avai_occ = 'Occupied'
WHERE b_ID = @AvailableBid
Run Code Online (Sandbox Code Playgroud)
注意:您必须确保 Patient_Record 表中有 PatientRecordId
| 归档时间: |
|
| 查看次数: |
634 次 |
| 最近记录: |