分享泛微公司OA系统用于二次开发的sql脚本
本单位用的oa系统就是泛微公司的oa协同办公平台,下面是我对他进行二次开发统计用到的写数据库脚本,只做开发参考使用,对于该系统的二次开发技术交流可以加我q:2050372586
【仪表盘】格式sql编写规则: ? 只支持select语句并且, Select的结果必须为四列一行,且没列值为数值,其中 ? 第一个值为最小值 ? 第二个值为最大值 ? 第三个值为安全值 ? 第四个值为当前值 例如 Select 0,400,300,count(id) from hrmresource 【其他图形】格式sql编写规则(饼状、柱状、折线等等) 只支持select语句并且,select的结果必须为两列N(N>=1)行,且第二列必须为数值,其中 第一列值为显示项目(分类)名称 第二列值为对应项目(分类)的值 例如 员工数机构 sql: select top 10 (select subcompanyname from hrmsubcompany where id=subCompanyId1),count(id) As cids from hrmresource group by subCompanyId1 order by cids desc oracle: select (select subcompanyname from hrmsubcompany where id=subCompanyId1),count(id) As cids from hrmresource group by subCompanyId1 order by cids desc 合同金额前十机构 select top 10 (select subcompanyname from hrmsubcompany where id=subCompanyId1),floor(sum(price/10000)) As cids from CRM_Contract where subCompanyId1 is not null group by subCompanyId1 order by cids desc 销售机会金额前十机构 select top 10 (select subcompanyname from hrmsubcompany where id=subCompanyId),floor(sum(preyield/10000)) As cids from CRM_SellChance group by subCompanyId order by cids desc 耗时前五长流程 sql: select top 5 (select workflowname from workflow_base where id=workflowid),24*avg(convert(float,convert(datetime,lastoperatedate))-convert(float,convert(datetime,createdate))) cids from workflow_requestbase where workflowid>0 and workflowid!=5 group by workflowid order by cids desc oracle: select (select workflowname from workflow_base where id=workflowid),avg(nvl(to_date(lastoperatedate,'yyyy-mm-dd'),to_date(to_char(sysdate,'YYYY-MM-DD'),'yyyy-mm-dd'))- to_date(createdate,'yyyy-mm-dd')) as cids from workflow_requestbase where workflowid>0 and workflowid!=5 and rownum<=5 group by workflowid order by cids desc 销售机会前十机构 select top 10 (select subcompanyname from hrmsubcompany where id=subCompanyId),count(id) As cids from CRM_SellChance group by subCompanyId order by cids desc 项目统计前十机构 select top 10 (select subcompanyname from hrmsubcompany where id=hrmdepartment.subcompanyid1),count(*) as cid from Prj_ProjectInfo ,hrmdepartment where Prj_ProjectInfo.department=hrmdepartment.id group by hrmdepartment.subcompanyid1 order by cid desc 人员性别统计 select case sex when '0' then '男' else '女' end, count(id) as cid from hrmresource group by sex 典型客户前十机构 select top 10 (select provincename from hrmprovince where id=province) ,province,count(id) as cids from CRM_CustomerInfo where status=4 and province>0 group by province order by cids desc 创建文挡前十名统计 sql: select top 10 (select lastname from hrmresource where id=doccreaterid) ,count(id) as cid from docdetail group by doccreaterid order by cid desc oracle: select (select lastname from hrmresource where id=doccreaterid) ,count(id) as cid from docdetail where rownum<=10 group by doccreaterid order by cid desc 待办事宜数量前十机构统计 slq: select top 10 (select subcompanyname from hrmsubcompany where id=subcompanyid1),count(requestid) as cid from workflow_currentoperator,hrmresource where hrmresource.id=workflow_currentoperator.userid and isremark in (0,1,8,9) and islasttimes=1 group by subcompanyid1 order by cid desc oracle: select (select subcompanyname from hrmsubcompany where id=subcompanyid1),count(requestid) as cid from workflow_currentoperator,hrmresource where hrmresource.id=workflow_currentoperator.userid and isremark in (0,1,8,9) and islasttimes=1 and rownum<=10 group by subcompanyid1 order by cid desc 学历人员分布 oracle: select (select name from hrmeducationlevel where id=educationlevel) as 学历,count(id) as 人数 from hrmresource where educationlevel != 0 group by educationlevel order by educationlevel desc 办公地点人员分布 oracle: select (select locationname from hrmlocations where id=locationid) as 办公地点,count(id) as 人数 from hrmresource group by locationid 年龄段人员分布 oracle: select 年龄段,age1 from( select count(id) age1,'40后' 年龄段 from hrmresource t1 where t1.birthday between '1940-01-01' and '1949-12-31' union select count(id) age1,'50后' 年龄段 from hrmresource t1 where t1.birthday between '1950-01-01' and '1959-12-31' union select count(id) age1,'60后' 年龄段 from hrmresource t1 where t1.birthday between '1960-01-01' and '1969-12-31' union select count(id) age1,'70后' 年龄段 from hrmresource t1 where t1.birthday between '1970-01-01' and '1979-12-31' union select count(id) age1,'80后' 年龄段 from hrmresource t1 where t1.birthday between '1980-01-01' and '1989-12-31' union select count(id) age1,'90后' 年龄段 from hrmresource t1 where t1.birthday between '1990-01-01' and '1999-12-31') order by 年龄段 职务人员分布 sql: select count(id) as 人数,'总裁' as 职务 from hrmresource where seclevel=80 union all select count(id) as 人数,'中心领导' as 职务 from hrmresource where seclevel=70 or seclevel=60 union all select count(id) as 人数,'经理' as 职务 from hrmresource where seclevel=40 union all select count(id) as 人数,'副经理' as 职务 from hrmresource where seclevel=30 union all select count(id) as 人数,'主管' as 职务 from hrmresource where seclevel=20 union all select count(id) as 人数,'普通员工' as 职务 from hrmresource where seclevel=10 union all select count(id) as 人数,'实习生' as 职务 from hrmresource where seclevel=5 oracle: select 人数,职务 from( select count(id) as 人数,'总裁' as 职务 from hrmresource where seclevel=80 union all select count(id) as 人数,'中心领导' as 职务 from hrmresource where seclevel=70 or seclevel=60 union all select count(id) as 人数,'经理' as 职务 from hrmresource where seclevel=40 union all select count(id) as 人数,'副经理' as 职务 from hrmresource where seclevel=30 union all select count(id) as 人数,'主管' as 职务 from hrmresource where seclevel=20 union all select count(id) as 人数,'普通员工' as 职务 from hrmresource where seclevel=10 union all select count(id) as 人数,'实习生' as 职务 from hrmresource where level=5 ) U8系统-主营业务收入期间图 select case b.iperiod when '1' then '一月' when '2' then '二月' when '3' then '三月' when '4' then '四月' when '5' then '五月' when '6' then '六月' when '7' then '七月' when '8' then '八月' when '9' then '九月' when '10' then '十月' when '11' then '十一月' when '12' then '十二月' end,sum(b.md) as 金额 from fitemss00 as a,GL_accass as b,code as c where a.citemcode=b.citem_id and b.ccode=c.ccode and c.ccode like '6001%' group by iperiod U8系统-主营业务成本期间图 select case b.iperiod when '1' then '一月' when '2' then '二月' when '3' then '三月' when '4' then '四月' when '5' then '五月' when '6' then '六月' when '7' then '七月' when '8' then '八月' when '9' then '九月' when '10' then '十月' when '11' then '十一月' when '12' then '十二月' end,sum(b.md) as 金额 from fitemss00 as a,GL_accass as b,code as c where a.citemcode=b.citem_id and b.ccode=c.ccode and c.ccode like '6401%' group by iperiod U8系统-主营业务利润 select '成本' as 项,sum(md) as 金额 from fitemss00 as a,GL_accass as b,code as c where a.citemcode=b.citem_id and b.ccode=c.ccode and c.ccode like '6401%' union all select '收入' as 项,sum(mc) as 金额 from fitemss00 as a,GL_accass as b,code as c where a.citemcode=b.citem_id and b.ccode=c.ccode and c.ccode like '6001%' U8系统-主营业务每月利润表 select '一月' as 月份,(select sum(b.md) from GL_accass as b,code as c where b.ccode=c.ccode and c.ccode like '6001%' and iperiod='1')-(select sum(b.md) from GL_accass as b,code as c where b.ccode=c.ccode and c.ccode like '6401%' and iperiod='1') as 金额 union all select '二月' as 月份,(select sum(b.md) from GL_accass as b,code as c where b.ccode=c.ccode and c.ccode like '6001%' and iperiod='2')-(select sum(b.md) from GL_accass as b,code as c where b.ccode=c.ccode and c.ccode like '6401%' and iperiod='2') as 金额 union all select '三月' as 月份,(select sum(b.md) from GL_accass as b,code as c where b.ccode=c.ccode and c.ccode like '6001%' and iperiod='3')-(select sum(b.md) from GL_accass as b,code as c where b.ccode=c.ccode and c.ccode like '6401%' and iperiod='3') as 金额 union all select '四月' as 月份,(select sum(b.md) from GL_accass as b,code as c where b.ccode=c.ccode and c.ccode like '6001%' and iperiod='4')-(select sum(b.md) from GL_accass as b,code as c where b.ccode=c.ccode and c.ccode like '6401%' and iperiod='4') as 金额 union all select '五月' as 月份,(select sum(b.md) from GL_accass as b,code as c where b.ccode=c.ccode and c.ccode like '6001%' and iperiod='5')-(select sum(b.md) from GL_accass as b,code as c where b.ccode=c.ccode and c.ccode like '6401%' and iperiod='5') as 金额 union all select '六月' as 月份,(select sum(b.md) from GL_accass as b,code as c where b.ccode=c.ccode and c.ccode like '6001%' and iperiod='6')-(select sum(b.md) from GL_accass as b,code as c where b.ccode=c.ccode and c.ccode like '6401%' and iperiod='6') as 金额 union all select '七月' as 月份,(select sum(b.md) from GL_accass as b,code as c where b.ccode=c.ccode and c.ccode like '6001%' and iperiod='7')-(select sum(b.md) from GL_accass as b,code as c where b.ccode=c.ccode and c.ccode like '6401%' and iperiod='7') as 金额 union all select '八月' as 月份,(select sum(b.md) from GL_accass as b,code as c where b.ccode=c.ccode and c.ccode like '6001%' and iperiod='8')-(select sum(b.md) from GL_accass as b,code as c where b.ccode=c.ccode and c.ccode like '6401%' and iperiod='8') as 金额 union all select '九月' as 月份,(select sum(b.md) from GL_accass as b,code as c where b.ccode=c.ccode and c.ccode like '6001%' and iperiod='9')-(select sum(b.md) from GL_accass as b,code as c where b.ccode=c.ccode and c.ccode like '6401%' and iperiod='9') as 金额 union all select '十月' as 月份,(select sum(b.md) from GL_accass as b,code as c where b.ccode=c.ccode and c.ccode like '6001%' and iperiod='10')-(select sum(b.md) from GL_accass as b,code as c where b.ccode=c.ccode and c.ccode like '6401%' and iperiod='10') as 金额 union all select '十一月' as 月份,(select sum(b.md) from GL_accass as b,code as c where b.ccode=c.ccode and c.ccode like '6001%' and iperiod='11')-(select sum(b.md) from GL_accass as b,code as c where b.ccode=c.ccode and c.ccode like '6401%' and iperiod='11') as 金额 union all select '十二月' as 月份,(select sum(b.md) from GL_accass as b,code as c where b.ccode=c.ccode and c.ccode like '6001%' and iperiod='12')-(select sum(b.md) from GL_accass as b,code as c where b.ccode=c.ccode and c.ccode like '6401%' and iperiod='12') as 金额 fitemss00 产品 code 科目 fitemss00class 产品分类表 GL_accass 资金表 GL_CashTable 总账现金流量数据表 GL_accvouch 凭证及明细账 Code 会计科目档案 Department 部门基本信息 Person 职员档案 Customer 客户档案 CustomerClass 客户分类档案 Vendor 供应商档案 VendorClass 供应商分类档案 fitemss98 现金流量项目目录 fitemss98class 现金流量分类目录
序号 |
查询语句 |
功能 |
1 |
Select* from DocDetail where maincategory=17 |
查看通知 |
2 |
SELECT * from HrmResource |
查看个人信息 |
3 |
select * from workflow_requestbase |
流程申请表 |
select * from workflow_requestbase where status='提醒' |
查看会议提醒() |
|
4
|
Select * from workflow_currentoperator where userid=606 and isremark =0 (其中userid是用户信息表的账号) |
查看当前待办流程 |
select * from workflow_requestbase WHERE requestid in ( Select requestid from workflow_currentoperator where userid=10 and isremark =0 ) |
|
|
5 |
Update workflow_currentoperator |
|
6 |
select * from Meeting |
查看会议 |
7 |
select * from MeetingRoom |
会议室 |
8 |
SELECT a.name,b.lastname,c.lastname,d.name,a.begindate,a.begintime,a.enddate, a.endtime, a.createdate,a.createtime,a.totalmember,a.description,a.requestid FROM Meeting a LEFT JOIN HrmResource b ON a.caller=b.id LEFT JOIN HrmResource c ON a.contacter=c.id LEFT JOIN MeetingRoom d ON a.address=d.id where DateDiff(dd, begindate,getdate())<=14 ORDER BY begindate asc |
14天以后的会议详细查看 |
9 |
Where DateDiff(dd,a.createdate,getdate())=0 |
今天的所有数据 |
10 |
Where DateDiff(dd,a.createdate,getdate())=1 |
昨天 |
11 |
select * from Meeting where DateDiff(dd, begindate,getdate())<=14 ORDER BY begindate desc |
14天内 |
12 |
select * from Meeting where DateDiff(mm, createdate,getdate())=0 |
本月申报 |
13 |
select * from Meeting where DateDiff(yy, createdate,getdate())=0 |
本年申报 |
14 |
HrmDepartment 人力资源部门表 HrmJobGroups 人力资源职务类型表 HrmJobTitles 人力资源岗位表 |
|
15 |
select loginid as 工号,lastname as 姓名 from HrmResource where isnull(loginid,'')<>'' |
sql 查询账号不为空的: |
16 |
select * from workflow_billfield select * from workflow_base select * from workflow_selectitem
|
一下三个表关联起来可以查询到选择项的对应流程 |