先说下基本业务:
有四个表,分别为节点表(S_WORKFLOWNODE)、页面表(S_PAGE)、视图表(S_VIEW)和按钮表(S_FUNCTION)。
四个表之间的联系为:页面表中只记录节点表的主键序号、视图表中只记录页面表的主键序号、按钮表中只记录视图表的主键序号。
要求:每个按钮所属视图、页面和节点,每个节点下有哪些页面、视图和按钮。
所用数据库:SQL Server 2005
SQL如下:
select aa.*,bb.* from ( SELECT w.S_WORKFLOWNODE_ as wS_WORKFLOWNODE_,w.NODENAME as wNODENAME,w.NODELEVEL as wNODELEVEL,w.showorder as wshoworder, P.S_workflownode_ as pS_workflownode_,p.S_PAGE_ID as pS_PAGE_ID,p.PAGENAME as pPAGENAME FROM S_WORKFLOWNODE w left join S_PAGE p on p.S_WORKFLOWNODE_ = w.S_WORKFLOWNODE_ --where w.NODELEVEL>0 ) as aa left join ( select V.S_VIEW_ID as vS_VIEW_ID,V.S_PAGE_ID as vS_PAGE_ID,V.VIEWNAME as vVIEWNAME, F.S_VIEW_ID as fS_VIEW_ID,F.S_FUNCTION_ID as fS_FUNCTION_ID,F.FUNCTIONNAME as fFUNCTIONNAME from S_VIEW V LEFT JOIN S_FUNCTION F ON V.S_VIEW_ID=F.S_VIEW_ID WHERE isnull(S_PAGE_ID,0)>0 )as bb on aa.pS_PAGE_ID=bb.vS_PAGE_ID --where aa.wS_WORKFLOWNODE_>=31 order by aa.wS_WORKFLOWNODE_
有了这个SQL,以后要统计系统流程节点信息就easy了,啦啦啦啦!