公司上费用控制系统后,泛微自带的报表权限控制太足了,不方便查询,于是根据现有表结构写了这个查询,可以查询部门当前生效的预算信息,包括科目、总预算和已用预算,其中已用预算关联报销、预提的相关流程。
SELECT
年度,分部,部门,科目,
SUM ( 预算金额 ) AS 预算 ,
b1.[已用金额],
SUM ( 预算金额 ) - b1.[已用金额] AS 可用金额,
b1.[审批中金额]
FROM
(
SELECT
t5.fnayear AS 年度,
t4.subcompanyname AS 分部,
t2.departmentname AS 部门,
t3.name AS 科目,
FnaBudgetInfoDetail.budgetaccount AS 预算金额 ,
SUM ( t6.amount ) AS 已用金额,
SUM(CASE WHEN t6.status = 0 THEN t6.amount ELSE 0 END) AS 审批中金额
FROM
FnaBudgetInfoDetail
LEFT JOIN FnaBudgetInfo t1 ON t1.id= FnaBudgetInfoDetail.budgetinfoid
LEFT JOIN hrmdepartment t2 ON t2.id = t1.budgetorganizationid
LEFT JOIN FnaBudgetfeeType t3 ON t3.id = FnaBudgetInfoDetail.budgettypeid
LEFT JOIN HrmSubCompany t4 ON t4.id = t2.subcompanyid1
LEFT JOIN FnaYearsPeriods t5 ON t5.id = FnaBudgetInfoDetail.budgetperiods
LEFT JOIN FnaExpenseInfo t6 ON t6.organizationid = t1.budgetorganizationid
AND t6.subject = FnaBudgetInfoDetail.budgettypeid
WHERE
t1.status = 1 --预算生效标志
AND t5.id = 3 --账套年度代码标志l
AND t4.id IN ( 15, 850, 396, 397 ) -- 分部标志
AND t1.budgetorganizationid = 1574 --部门标志
AND t6.budgetperiods = 3 --账套年度代码标志
GROUP BY
t5.fnayear,
t4.subcompanyname,
t2.departmentname,
t3.name,
FnaBudgetInfoDetail.budgetperiodslist,
FnaBudgetInfoDetail.budgetaccount
) b1
GROUP BY
b1.[年度],
b1.[分部],
b1.[部门],
b1.[科目],
b1.[已用金额],
b1.[审批中金额]
ORDER BY
b1.[分部],
b1.[部门],
b1.[科目]
该查询中关联的表结构如下:
fnabudgetinfodetail/部门预算信息明细表
序号 | 中文名称 | 英文名称 | 数据类型 | 长度 | 允许空值 | 主键 | 默认值 | 自增 | 说明 |
1 | 主键 | id | int | N | Y | Y | |||
2 | 部门预算信息id | budgetinfoid | int | ||||||
3 | 年度期间ID | budgetperiods | int | 预算年度表主键 | |||||
4 | 科目id | budgettypeid | int | ||||||
5 | 人员id | budgetresourceid | int | 预算相关人力资源 | |||||
6 | 客户id | budgetcrmid | int | 预算相关客户 | |||||
7 | 项目id | budgetprojectid | int | 预算相关项目 | |||||
8 | 金额 | budgetaccount | decimal | 18,2 | |||||
9 | 备注 | budgetremark | varchar | 1000 | |||||
10 | 期间id | budgetperiodslist | int | 预算期间表主键 | |||||
11 | 偏差金额 | fnaIncrement | decimal | 18,2 | 当前版本与上一版本的差额,记录可能存在空数据,空请转换成0; 注:目前只有结转类型的操作会记录该数值,正常编制生成的版本该数值等于0; |
fnabudgetinfo/部门预算信息表
序号 | 中文名称 | 英文名称 | 数据类型 | 长度 | 允许空值 | 主键 | 默认值 | 自增 | 说明 |
1 | 主键 | id | int | N | Y | Y | |||
2 | 预算状态 | budgetstatus | int | 0:未审批; 1:已审批; | |||||
3 | 创建人id | createrid | int | ||||||
4 | 审批人id | approverid | int | 通过审批流程生效的预算才有数据 | |||||
5 | 审批日期 | approverdate | char | 10 | 通过审批流程生效的预算才有数据 | ||||
6 | 组织ID | budgetorganizationid | int | 分部:分部id; 部门:部门id; 人员:人员id; 成本中心:成本中心id; | |||||
7 | 组织ID类型 | organizationtype | int | 0:总部; 1:分部; 2:部门; 18004:成本中心; | |||||
8 | 年度期间ID | budgetperiods | int | 预算年度表主键 | |||||
9 | 版本 | revision | int | ||||||
10 | 状态 | status | int | 0 :草稿;1 :生效;2 :历史;3 :待审批; | |||||
11 | 备注 | remark | varchar | 1000 | |||||
12 | 创建日期 | createdate | char | 20 | |||||
14 | 生成方式 | opType | char | 1 | j:结转;空:编制; |
hrmdepartment/人力资源部门表
序号 | 中文名称 | 英文名称 | 数据类型 | 长度 | 允许空值 | 主键 | 默认值 | 自增 | 说明 |
1 | ID | id | int | N | Y | Y | |||
2 | 部门标识 | departmentmark | varchar | 1000 | |||||
3 | 部门名称 | departmentname | varchar | 1000 | |||||
4 | 所属分部1 | subcompanyid1 | int | ||||||
5 | 上级部门id | supdepid | int | ||||||
6 | 所有上级部门id | allsupdepid | varchar | 2000 | |||||
7 | 显示顺序 | showorder | int | ||||||
8 | 封存标识 | canceled | char | 1 | |||||
9 | 部门编码 | departmentcode | varchar | 1000 | |||||
10 | 协办人 | coadjutant | int | ||||||
11 | 组织架构部门负责人 | zzjgbmfzr | varchar | 4000 | |||||
12 | 组织架构部门分管领导 | zzjgbmfgld | varchar | 4000 | |||||
13 | 矩阵管理部门负责人 | jzglbmfzr | varchar | 4000 | |||||
14 | 矩阵管理部门分管领导 | jzglbmfgld | varchar | 4000 | |||||
15 | 矩阵部门负责人员 | bmfzr | text | ||||||
16 | 矩阵部门分管领导 | bmfgld | text | ||||||
17 | outkey | varchar | 1000 | ||||||
18 | budgetAtuoMoveOrder | int | |||||||
19 | ecology_pinyin_search | varchar | 1000 | ||||||
20 | tlevel | int |
fnabudgetfeetype/预算科目定义表
序号 | 中文名称 | 英文名称 | 数据类型 | 长度 | 允许空值 | 主键 | 默认值 | 自增 | 说明 |
1 | 主键 | id | int | N | Y | Y | |||
2 | 名称 | name | varchar | 400 | |||||
3 | 描述 | description | varchar | 1000 | |||||
4 | 预算周期 | feeperiod | int | 1:月度;2:季度;3:半年度;4:年度; | |||||
5 | 科目种类 | feetype | int | 1:收入; 2:支出 | |||||
6 | 允许偏差 | agreegap | int | 百分比 | |||||
7 | 科目级别 | feelevel | int | 1: 一级科目;2: 二级;3: 三级; | |||||
8 | 父级科目id | supsubject | int | ||||||
9 | 预警值 | alertvalue | int | 百分比 | |||||
10 | 封存 | Archive | int | 0、NULL:未封存;1:封存; | |||||
15 | 统一费控 | groupCtrl | char | 1 | 预算控制时汇总下级科目费用进行统一控制 | ||||
17 | 科目编码 | codeName | char | 100 | |||||
18 | 是否结转 | budgetAutoMove | int | 当前科目是否进行结转 |
hrmsubcompany/分部信息表
序号 | 中文名称 | 英文名称 | 数据类型 | 长度 | 允许空值 | 主键 | 默认值 | 自增 | 说明 |
1 | ID | id | int | N | Y | Y | |||
2 | 分部简称 | subcompanyname | varchar | 1000 | |||||
3 | 分部描述 | subcompanydesc | varchar | 1000 | |||||
4 | 所属总部id | companyid | tinyint | ||||||
5 | 上级分部ID | supsubcomid | int | 0 | |||||
6 | url | varchar | 1000 | ||||||
7 | 序列号 | showorder | int | ||||||
8 | 封存标识 | canceled | char | 1 | |||||
9 | 分部编码 | subcompanycode | varchar | 1000 | |||||
10 | outkey | varchar | 1000 | ||||||
11 | budgetAtuoMoveOrder | int | |||||||
12 | 拼音 | ecology_pinyin_search | varchar | 1000 | |||||
13 | 限制用户数 | limitUsers | int | 0 | |||||
14 | 等级 | tlevel | int |
fnayearsperiods/预算年度表
序号 | 中文名称 | 英文名称 | 数据类型 | 长度 | 允许空值 | 主键 | 默认值 | 自增 | 说明 |
1 | 主键 | id | int | N | Y | Y | |||
2 | 年度 | fnayear | char | 4 | |||||
3 | 开始日期 | startdate | char | 10 | |||||
4 | 结束日期 | enddate | char | 10 | |||||
6 | 状态 | status | int | 0: 未生效;1 :生效;-1: 关闭;默认为0 |
fnaexpenseinfo/费用表
序号 | 中文名称 | 英文名称 | 数据类型 | 长度 | 允许空值 | 主键 | 默认值 | 自增 | 说明 |
1 | 主键 | id | int | N | Y | ||||
2 | 承担主体id | organizationid | int | 分部id;部门id;个人id;成本中心id; | |||||
3 | 承担主体类型 | organizationtype | int | 1:分部;2:部门;3:个人;18004:成本中心; | |||||
4 | 费用发生日期 | occurdate | char | 10 | |||||
5 | 金额 | amount | decimal | 15,3 | |||||
6 | 科目id | subject | int | ||||||
7 | 状态 | status | int | 0:审批中;1:生效; | |||||
8 | 来源类型 | type | int | 1:付款;2:报销;3:冲销; | |||||
9 | 项目id | relatedprj | int | 相关项目 | |||||
10 | 客户id | relatedcrm | int | 相关客户 | |||||
11 | 凭证号 | debitremark | varchar | 400 | 手工做账时才会录入 | ||||
12 | 描述 | description | varchar | 1000 | |||||
13 | 流程requestid | requestid | int | 统计用流程requestid | |||||
15 | 流程明细表id | requestidDtlId | int | 统计用流程明细表id | |||||
16 | 流程明细表序号 | sourceDtlNumber | int | 记录来源明细表序号 | |||||
17 | 流程requestid | sourceRequestid | int | 来源流程requestid | |||||
18 | 流程明细表id | sourceRequestidDtlId | int | 记录来源流程明细表id | |||||
19 | 年度期间ID | budgetperiods | int | 费用发生日期所属:预算年度表主键 | |||||
20 | 期间id | budgetperiodslist | int | 费用发生日期所属:预算期间表主键 |
评论前必须登录!
注册