为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:WIN11
【CPU】:
【问题描述】*:
DECLARE DM_cKindIDaaa INTEGER;
DM_cWFRequestBrowStatus INTEGER;
BEGIN
SET DM_cKindID = 4;
SET DM_cWFRequestBrowStatus = 0;
SELECT wfr.fID, wfr.fWorkFlowID, wf.fClassID, wf.fNO AS fWorkFlowNO, wf.fName AS fWorkFlowName, wf.fRNameFormat, wf.fRSimpNameFormat, wf.fRFullNameFormat, wf.fRNameTrgFields, wfr.fFormID, wfr.fObjectID, ic.fName AS fObjectName, wfr.fDataID, wfr.fNO, wfr.fName, wfr.fSimpName, wfr.fFullName, wfr.fLevel,
wfr.fCreatorID, wfr.fCreateDate, wfr.fSNodeID, wfr.fDNodeTypeID AS fSNodeTypeID, wfr.fDNodeStatus AS fSNodeStatus, wfr.fIsFinish, wfr.fIsDelete, wfr.fDNodeID, wfr.fDNodeTypeID AS fDNodeTypeID,
0 AS fDNodeIsAllSign, 1 AS fDNodeIsAllSigned, wfr.fLastOperUserID, wfr.fLastOperDate, 0 AS fOperID, 0 AS fWorkFlowOperID, wf.fSysModuleID, 0 AS fIsReject, '0' AS fWayID, wf.fUrl, wf.fTypeID, wf.fMobileFormID
FROM "SPi4_Test".tWorkFlowRequest wfr
LEFT JOIN "SPi4_Test".tWorkFlow wf ON wfr.fWorkFlowID = wf.fID
LEFT JOIN "SPi4_Test".tItemClass ic ON wf.fObjectID = ic.fID
WHERE (wfr.fCreateDate >= GETDATE() OR (1 = 1 AND wfr.fIsDelete = 0 AND wfr.fIsFinish = 0))
AND (wfr.fCreateDate <= GETDATE() - 30 OR (1 = 1 AND wfr.fIsDelete = 0 AND wfr.fIsFinish = 0))
AND (DM_cWFRequestBrowStatus = 0 OR (DM_cWFRequestBrowStatus = 1 AND NOT EXISTS (SELECT 1 FROM "Test".tWorkFlowRequestLog WHERE fRequestID = wfr.fID))
OR (DM_cWFRequestBrowStatus = 2 AND EXISTS (SELECT 1 FROM "SPi4_Test".tWorkFlowRequestLog wrl WHERE fRequestID = wfr.fID))
)
AND ((DM_cKindID = 0)
OR (DM_cKindID = 4 AND (EXISTS (SELECT 1 FROM "SPi4_Test".tWorkFlowRequestLog l WHERE l.fOperUserID = '1003' AND wfr.fID = l.fRequestID)
OR EXISTS (SELECT 1 FROM "SPi4_Test".tWaitRemindEntry we, "SPi4_Test".tWaitRemind w1
WHERE w1.fRequestID = wfr.fID AND w1.fID = we.fInterID AND we.fUserID = '1003')
)
)
OR (DM_cKindID = 7 AND wfr.fCreatorID = '1003'
AND NOT EXISTS (SELECT 1 FROM "SPi4_Test".tWaitRemindEntry we, "SPi4_Test".tWaitRemind w1
WHERE w1.fRequestID = wfr.fID AND w1.fID = we.fInterID AND w1.fStatus = 0 AND we.fUserID = '1003')
)
)
ORDER BY wfr.fCreateDate DESC, wfr.fWorkFlowID;
End
返回的数据是错的
如果我把 DM_cKindID = 0 直接替换为 4=0 或者 把 DM_cWFRequestBrowStatus = 0 替换为 0=0 结果就是正确的
这是什么问题导致的
调整前返回数据:
调整后返回数据:
我看你sql中不是SET DM_cKindID = 4吗,你可以先排查一下sql的逻辑和语句都是否正确