显示待批准的状态

时间:2013-10-16 18:01:04

标签: c# asp.net sql

我尝试此查询以显示上传文档..此查询有效

CREATE PROCEDURE b
AS
SELECT  di.DocID, 
        di.DocName, 
        di.Uploadfile, 
        dt.DocType,
        d.DepType, 
        at.ApproveType
FROM    DocumentInfo di
    LEFT OUTER JOIN
        DocType dt ON dt.DocTypeID = di.DocTypeID
    LEFT OUTER JOIN 
        Department d ON d.DepID = di.DepID
    LEFT OUTER JOIN
        ApproveType at ON at.ApproveID = di.ApproveID 
   AND  at.ApproveID = 3

我在此创建一个批准表 批准表 文档ID approveid approveby  管理员批准/拒绝文件,数据进入该表,即

docid approveid approveby
  1     2      john

它有效,但在上面的查询中我想显示用户上传任何文件然后其状态显示为待处理然后当管理员批准/拒绝文件然后状态更改为批准/拒绝..我是如何做到这一点.. 这是管理员批准/拒绝文档和数据进入批准表并且工作正常的形式 admin approve/reject documents

j这里是我显示状态的形式 show status here (image)

任何解决方案?

1 个答案:

答案 0 :(得分:0)

我想我明白你的意思了。如果匹配行中存在匹配的行,那么您希望显示Pending,如果匹配的行存在,则表示已批准/未批准(来自approveid)?

看看这是否有帮助:

CREATE PROCEDURE b
AS
SELECT  di.DocID, 
        di.DocName, 
        di.Uploadfile, 
        dt.DocType,
        d.DepType, 
        at.ApproveType
FROM    DocumentInfo di
    JOIN
        DocType dt ON dt.DocTypeID = di.DocTypeID
    JOIN 
        Department d ON d.DepID = di.DepID
    LEFT OUTER JOIN
        Approval a ON a.DocID = di.DocID
    JOIN
        ApproveType at ON at.ApproveID = ISNULL(a.Approveid, 3)

如果Approval表中缺少文档,则a.ApproveID将为null。如果ApproveID为null,则ISNULL函数返回3,如果它不为null,则返回实际值。

我还删除了你可能不需要的外连接。但是需要针对Approval的外部联接。