SQL SERVER に 2 つのテーブルがあります。
DBO.VitalPatientDetails=>
| | 患者の詳細 ID | 患者ID | 患者名 | ユニット名 | ベッド名 | 患者DOB | LastAlarmReceivedAt |
DBO.VitalAlarmDetails=>
| | ID | PatientDetailsId (VitalPatientDetails.PatientDetailsId を参照) | バイタルジェネレーションタイム | ファイル名 |
VitalGenerationTime で昇順で並べ替えられた PatientDetailsId でグループ化された DBO.VitalAlarmDetails のすべてのフィールドを取得する必要があります。以下のようにカーソルを書きましたが、複数の結果セットが返されます。カーソルを使用せずに単一のセットで取得する必要があります。カーソルなしでこれを実行できるかどうかを知りたいだけです。
DECLARE @PatientDetailsId BIGINT
DECLARE @getAlarmDetails CURSOR
SET @getAlarmDetails = CURSOR FOR SELECT PatientDetailsId FROM VitalPatientDetails
OPEN @getAlarmDetails
FETCH NEXT FROM @getAlarmDetails INTO @PatientDetailsId
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT * FROM VitalAlarmDetails
WHERE PatientDetailsId = @PatientDetailsId
ORDER BY VitalGenerationTime ASC
FETCH NEXT FROM @getAlarmDetails INTO @PatientDetailsId
END
CLOSE @getAlarmDetails
DEALLOCATE @getAlarmDetails
ありがとう。