0

我尝试这个查询来显示上传文件..这个查询有效

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

我在这个批准表中创建一个批准表 docidapprovidapprovby 管理员批准/拒绝文件,数据进入这个表,即

docid approveid approveby
  1     2      john

它可以工作,但在上面的查询中,我想显示当用户上传任何文档时,它的状态显示为待处理,然后当管理员批准/拒绝文档然后状态更改为批准/拒绝..我是怎么做到的..这是管理员批准/的表格拒绝文件和数据进入批准表,它可以工作 管理员批准/拒绝文件

jwhere 因为这是我 在此处显示状态显示状态的形式(图片)

任何解决方案?

4

1 回答 1

0

我想我现在明白你的意思了。如果 Approval 表中缺少匹配行,您想显示 Pending,如果匹配行存在,则显示 Approved/Not approved(来自approvedid)?

看看这是否有帮助:

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)

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

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

于 2013-10-16T18:34:48.777 回答