首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

公司OA系统中想创建一个视图来做报表,遇到有关问题,求大神指导

2012-09-10 
公司OA系统中想创建一个视图来做报表,遇到问题,求大神指导公司OA系统中想做一个统计报表,使用后台的MSSQL

公司OA系统中想创建一个视图来做报表,遇到问题,求大神指导
公司OA系统中想做一个统计报表,使用后台的MSSQL视图来完成。小弟不才,SQL水平非常有限,求大神指导。问题如下:
  有一张流程表单,称为表A。其中表A中有各位领导的审批意见,现在想做个视图将表中数据与各领导的审批意见放到视图里。表A中其他信息都可以直接取,但是审批意见是链接到另外一个表B中。

比如:OA流程表单中 显示的是督办人意见为:请尽快办理,同意;审批人意见为:不同意,其中XX有问题。而在后台SQL中内容为:

表A flow_id 督办人意见 审批人意见 
  23 5567 4432

表B flow_id main_id sentence
  23 5567 请尽快办理,同意
  23 4432 不同意,其中XX有问题

其中对应OA中同一张流程表单,表A中flow_id等于表B中flow_id。表A中一行记录对应表B中多行记录。

现在想做一个视图来展示表A中各个字段与审批意见中的内容。现在不晓得将A中一行数据与B中多行数据共同建立视图要怎么写,自己尝试过。但是不行,求大神指导。


[解决办法]

SQL code
CREATE TABLE A (FLOW_ID INT,[督办人id]INT,[审批人] INT)INSERT INTO a select    23,5567,4432CREATE TABLE b (FLOW_ID INT,main_id INT,sentence NVARCHAR(320))INSERT INTO B SELECT 23,5567,N'请尽快办理,同意' UNION SELECT 23,4432,N'不同意,其中XX有问题'CREATE VIEW V_VIEWASSELECT A.*,B.sentence FROM A JOIN B ON A.FLOW_ID=B.FLOW_ID AND ([督办人id]=MAIN_ID OR [审批人]=MAIN_ID)/*FLOW_ID    督办人id    审批人    sentence23    5567    4432    请尽快办理,同意23    5567    4432    不同意,其中XX有问题*/
[解决办法]
SQL code
-->测试数据IF OBJECT_ID('tb1')IS NOT NULLDROP TABLE tb1GOCREATE TABLE tb1 (  flow_id INT,  [督办人id] INT,  [审批人]   INT)INSERT INTO tb1SELECT 23,       5567,       4432IF OBJECT_ID('tb2')IS NOT NULLDROP TABLE tb2GOCREATE TABLE tb2 (  flow_id  INT,  main_id  INT,  sentence NVARCHAR(320))INSERT INTO tb2SELECT 23,       5567,       N'请尽快办理,同意'UNION ALLSELECT 23,       4432,       N'不同意,其中XX有问题'-->测试查询SELECT a.*,       b.sentenceFROM   tb1 a       LEFT JOIN tb2 b         ON a.flow_id = b.flow_id            AND ([督办人id] = main_id                  OR [审批人] = main_id)----------------------/*FLOW_ID 督办人id   审批人    sentence23    5567      4432     不同意,其中XX有问题23    5567      4432     请尽快办理,同意*/ 

热点排行