我在SQL Server中的兩個表。如何在不使用光標的情況下一次選擇一條記錄?
DBO.VitalPatientDetails =>
| PatientDetailsId | PatientId | PatientName | UnitName | BedName | PatientDOB | LastAlarmReceivedAt |
DBO.VitalAlarmDetails =>
| Id | PatientDetailsId(指VitalPatientDetails.PatientDetailsId)| VitalGenerationTime | FileName |
我需要以檢索由PatientDetailsId通過VitalGenerationTime升序排序分組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
謝謝。
你需要一個sinle VitalGenerationTime(MIN說VitalGenerationTime)每PatientDetailsId? –
能否請您使用遊標和任何樣本數據和所需的輸出張貼您的當前查詢。 –
我需要檢索表DBO.VitalAlarmDetails的各個領域,因爲它是。 – Ajinkya