表 sysflow
ordNo isAction actionDate
2000 Y 2009-09-23 08:36:00
2000 N NULL
2000 Y 2009-09-22 11:58:00
2000 Y 2009-09-22 11:58:00
2000 Y 2009-09-22 11:58:00
返回信息:处理中
ordNo isAction actionDate
2000 N NULL
2000 N NULL
2000 N NULL
2000 N NULL
2000 N NULL
返回信息:待处理
ordNo isAction actionDate
2000 Y 2009-09-22 12:55:00
2000 Y 2009-09-22 10:51:00
2000 Y 2009-09-22 11:58:00
2000 Y 2009-09-22 11:53:00
2000 Y 2009-09-22 11:54:00
返回信息:待处理
请用函数来写,主要是根据isAction的值是否相同 表为SysFlow
Create Function f_getStatus(@ordNo int)
ordNo isAction actionDate
2000 Y 2009-09-23 08:36:00
2000 N NULL
2000 Y 2009-09-22 11:58:00
2000 Y 2009-09-22 11:58:00
2000 Y 2009-09-22 11:58:00
返回信息:处理中
ordNo isAction actionDate
2000 N NULL
2000 N NULL
2000 N NULL
2000 N NULL
2000 N NULL
返回信息:待处理
ordNo isAction actionDate
2000 Y 2009-09-22 12:55:00
2000 Y 2009-09-22 10:51:00
2000 Y 2009-09-22 11:58:00
2000 Y 2009-09-22 11:53:00
2000 Y 2009-09-22 11:54:00
返回信息:待处理
请用函数来写,主要是根据isAction的值是否相同 表为SysFlow
Create Function f_getStatus(@ordNo int)
如果isAction得值为N和Y,则返回的值为:处理中
如果isAction得值为N,则返回的值为:待处理
ordNo isAction actionDate
2000 N 2009-09-22 12:55:00
2000 Y 2009-09-22 12:55:00
2000 N 2009-09-22 12:55:00
isAction字段的值有3中情况
如果isAction值都为Y,则返回的值为:已完成
如果isAction得值为N和Y,则返回的值为:处理中
如果isAction得值为N,则返回的值为:待处理
如果isAction值都为Y,则返回的值为:已完成
--
--
ordNo isAction actionDate
2000 Y 2009-09-22 12:55:00
2000 Y 2009-09-22 10:51:00
2000 Y 2009-09-22 11:58:00
2000 Y 2009-09-22 11:53:00
2000 Y 2009-09-22 11:54:00
返回信息:待处理
AS
BEGIN
SELECT '处理中:'+CHAR(13)+CHAR(10)
SELECT * FROM SYSFLOW WHERE isAction ='N' AND ORDNO=@ordNo SELECT '待处理:'+CHAR(13)+CHAR(10)
SELECT * FROM SYSFLOW WHERE isAction ='Y' AND ORDNO=@ordNo
END用存储过程,不知道理解错没
ordNo isAction actionDate
2000 2009-09-22 12:55:00
2000 2009-09-22 12:55:00
2000 2009-09-22 12:55:00
isAction字段的值有3中情况:
如果isAction值都为Y,则返回的值为:已完成
如果isAction得值为N和Y,则返回的值为:处理中
如果isAction得值为N,则返回的值为:待处理
请用函数来写,变量@ordNo是sysFlow表中的ordNo字段
Create Function f_getStatus(@ordNo int )
Returns Varchar(20)
AS
BEGIN
DECLARE @isAction nvarchar(1), @ActionCount; SELECT @ActionCount = COUNT(DISTINCT isAction), @isAction = MAX(isAction)
FROM SYSFLOW
WHERE ORDNO = @ordNo
GROUP BY ORDNO;IF @ActionCount > 2
RETURN N'处理中'
ELSE IF @isAction = N'Y'
RETURN N'已完成'
ELSE
RETURN N'待处理';
END
RETURN N'处理中'
ELSE IF @isAction = N'Y'
RETURN N'已完成'
ELSE
RETURN N'待处理';
RETURN VARCHAR(20) AS
BEGIN
DECLARE @CountN int,@CountY int
DECLARE @ReturnValue varchar(50),@isAction varchar(8)
DECLARE @CheckValue CURSOR
SET @CountN=0
SET @CountY=0
SET @CheckValue=CURSOR FOR SELECT isAction
FROM sysflow
WHERE ordNo=@ordNo
GROUP BY ordNo
OPEN @CheckValue
FETCH NEXT FROM @CheckValue INTO @isAction
WHILE @@FETCH_STATUS=0
BEGIN
IF @isAction='Y'
BEGIN
SET @CountY=@CountY + 1
END
IF @isAction='N'
BEGIN
SET @CountN=@CountN + 1
END
FETCH NEXT FROM @CheckValue INTO @isAction
END
CLOSE @CheckValue
IF @CountY>0 AND @CountN>0
BEGIN
@ReturnValue='处理中'
END
IF @CountY>0 AND @CountN=0
BEGIN
@ReturnValue='处理完'
END
IF @CountY=0 AND @CountN>0
BEGIN
@ReturnValue='待处理'
END
RETURN @ReturnValue