比如,我有如下的一个stored procedurecreate proc [dbo].[zzGetLastVisitDate]
(
@lastVisitDate DateTime output,
@patientID int,
@patientIDClinic char(1),
@date datetime
)
as
begin
SELECT max(date) AS LastDate
FROM Results
WHERE patientID = @patientID
AND patientIDClinic = @patientIDClinic
AND date <= @date;

set @lastVisitDate = ????????? 怎么写这里呀?多谢高手了
end我想用@lastVisitDate 返回select 语句中选择的Date(这里是LastDate), 就是一个单个的值,我该怎么写?多谢了

解决方案 »

  1.   

    你还不如直接就那条Select好了然后在程序里用 Command.ExecuteScalar() 直接获得这个 DateTime 值即将其作为返回值而不是输出参数来用
    如果你一定要输出,那么……将你写出来的东西反过来就可以了set @lastVisitDate = 
            (SELECT max(date) AS LastDate
    FROM Results
    WHERE patientID = @patientID
    AND patientIDClinic = @patientIDClinic
    AND date <= @date)
      

  2.   

    还有一种写法:SELECT @lastVisitDate = max(date)
    FROM Results
    WHERE patientID = @patientID
    AND patientIDClinic = @patientIDClinic
    AND date <= @date
      

  3.   

    create proc [dbo].[zzGetLastVisitDate]
    (
    @lastVisitDate DateTime output,
    @patientID int,
    @patientIDClinic char(1),
    @date datetime
    )
    as
    begin
    SELECT @lastVisitDate = max(date)
    FROM Results
    WHERE patientID = @patientID
    AND patientIDClinic = @patientIDClinic
    AND date <= @date;end