使用SQL将节点、页面、按钮整合到一个表中

先说下基本业务:

有四个表,分别为节点表(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了,啦啦啦啦酷

猜你喜欢

转载自1017401036.iteye.com/blog/2296839
今日推荐