0
点赞
收藏
分享

微信扫一扫

经费预算与调整记录与使用记录输出使用进度搭建过程记录

需求描述:

已有经费预算数据、经费调整记录、经费使用记录,需求输出视图显示经费使用进度。

即经费预算金额、调整后金额、使用冻结金额、已使用金额、剩余可用金额。

相关蓝图:

经费预算与调整记录与使用记录输出使用进度搭建过程记录_使用记录

需求分析:

  1. 基础数据:项目、预算维度、科目、科目类型、年份
  2. 预算金额:来源经费预算数据。
  3. 调整后金额:经费预算金额+调整合计
  4. 冻结金额:来源使用记录合计(状态:审批中/冻结)。
  5. 已使用金额:来源使用记录(状态:完成/扣减)
  6. 剩余可用金额:金额+调整金额+调减金额-冻结金额-已使用金额。


输出思路:

  1. 调整记录可能会有新增的科目,所以预算数据+调整记录 去重后得出完整的 项目-科目-年份表:union。
  2. 之后左拼接预算金额、调整金额、冻结金额、已使用金额。
  3. 之后计算调整后金额、剩余可用金额。
  4. 预算维度为总额预算的,年份为空。
  5. 输出结果拼接项目类型,用于计算直接费用合计和间接费用合计。

输出记录:

1.1获取预算数据表和字段:uf_jfys xm,km,nf,je,bzlc, ytsmjcsyj

1.2获取调整记录表和字段:uf_jftzls xm,km,nf,dzje,zt

1.3获取使用记录表和字段:uf_jfsyls xm,km,nf,je, zt

1.4获取科目信息表和字段:uf_km id,kmlx

1.5获取项目信息表和字段:uf_jfsb id,yswd

2.1获取完整的项目-科目-年份

预算数据:select xm,km,nf from uf_jfys

经费预算与调整记录与使用记录输出使用进度搭建过程记录_使用记录_02

调整数据:select xm,km,nf from uf_jftzls

经费预算与调整记录与使用记录输出使用进度搭建过程记录_使用记录_03

拼接:select xm,km,nf from uf_jfys union select xm,km,nf from uf_jftzls

经费预算与调整记录与使用记录输出使用进度搭建过程记录_字段_04


3.1拼接项目预算维度

SELECT

t1.xm,

t1.km,

t1.nf,

xm.yswd

FROM

( SELECT xm, km, nf FROM uf_jfys UNION SELECT xm, km, nf FROM uf_jftzls ) t1

LEFT JOIN uf_jfsb xm ON xm.id = t1.xm

经费预算与调整记录与使用记录输出使用进度搭建过程记录_数据_05

3.2拼接科目类型

SELECT

t1.xm,

t1.km,

t1.nf,

xm.yswd,

km.kmlx

FROM

( SELECT xm, km, nf FROM uf_jfys UNION SELECT xm, km, nf FROM uf_jftzls ) t1

LEFT JOIN uf_jfsb xm ON xm.id = t1.xm

LEFT JOIN uf_km km ON km.id = t1.km

经费预算与调整记录与使用记录输出使用进度搭建过程记录_数据_06


4.1拼接预算编制

SELECT

t1.xm,

t1.km,

t1.nf,

xm.yswd,

km.kmlx,

ys.je,

ys.bzlc,

ys.ytsmjcsyj

FROM

( SELECT xm, km, nf FROM uf_jfys UNION SELECT xm, km, nf FROM uf_jftzls ) t1

LEFT JOIN uf_jfsb xm ON xm.id = t1.xm

LEFT JOIN uf_km km ON km.id = t1.km

LEFT JOIN uf_jfys ys ON ys.xm = t1.xm

AND ys.km = t1.km

AND ys.nf = t1.nf

经费预算与调整记录与使用记录输出使用进度搭建过程记录_使用记录_07


5.1拼接调整金额前计算调整金额(完成调整金额、审批中加金额、审批中减金额)

select xm,km,nf,sum(case when zt=5 then dzje end) as wcdz,sum(case when zt>1 and zt<5 and dzje>0 then dzje end) as spdza,sum(case when zt>1 and zt<5 and dzje<0 then dzje end) as spdzb from uf_jftzls group by xm,km,nf

经费预算与调整记录与使用记录输出使用进度搭建过程记录_使用记录_08


5.2拼接调整金额

SELECT

t1.xm,

t1.km,

t1.nf,

xm.yswd,

km.kmlx,

ys.je,

ys.bzlc,

ys.ytsmjcsyj,

dz.wcdz,

dz.spdza,

dz.spdzb

FROM

( SELECT xm, km, nf FROM uf_jfys UNION SELECT xm, km, nf FROM uf_jftzls ) t1

LEFT JOIN uf_jfsb xm ON xm.id = t1.xm

LEFT JOIN uf_km km ON km.id = t1.km

LEFT JOIN uf_jfys ys ON ys.xm = t1.xm

AND ys.km = t1.km

AND ys.nf = t1.nf

LEFT JOIN (

SELECT

xm,

km,

nf,

sum( CASE WHEN zt = 5 THEN dzje END ) AS wcdz,

sum( CASE WHEN zt > 1 AND zt < 5 AND dzje > 0 THEN dzje END ) AS spdza,

sum( CASE WHEN zt > 1 AND zt < 5 AND dzje < 0 THEN dzje END ) AS spdzb

FROM

uf_jftzls

GROUP BY

xm,

km,

nf

) dz ON dz.xm = t1.xm

AND dz.km = t1.km

AND dz.nf = t1.nf

经费预算与调整记录与使用记录输出使用进度搭建过程记录_数据_09



6.1拼接冻结金额、扣减金额前计算

SELECT xm, km, nf, sum( CASE WHEN zt = 5 THEN je END ) AS wcsy, sum( CASE WHEN zt > 1

AND zt < 5 THEN

je

END

) AS spdj

FROM

uf_jfsyls

GROUP BY

xm,

km,

nf

经费预算与调整记录与使用记录输出使用进度搭建过程记录_数据_10

6.2拼接冻结金额、扣减金额

SELECT

t1.xm,

t1.km,

t1.nf,

xm.yswd,

km.kmlx,

ys.je,

ys.bzlc,

ys.ytsmjcsyj,

dz.wcdz,

dz.spdza,

dz.spdzb,

sy.syje,

sy.spdj

FROM

( SELECT xm, km, nf FROM uf_jfys UNION SELECT xm, km, nf FROM uf_jftzls ) t1

LEFT JOIN uf_jfsb xm ON xm.id = t1.xm

LEFT JOIN uf_km km ON km.id = t1.km

LEFT JOIN uf_jfys ys ON ys.xm = t1.xm

AND ys.km = t1.km

AND ys.nf = t1.nf

LEFT JOIN (

SELECT

xm,

km,

nf,

sum( CASE WHEN zt = 5 THEN dzje END ) AS wcdz,

sum( CASE WHEN zt > 1 AND zt < 5 AND dzje > 0 THEN dzje END ) AS spdza,

sum( CASE WHEN zt > 1 AND zt < 5 AND dzje < 0 THEN dzje END ) AS spdzb

FROM

uf_jftzls

GROUP BY

xm,

km,

nf

) dz ON dz.xm = t1.xm

AND dz.km = t1.km

AND dz.nf = t1.nf

LEFT JOIN (

SELECT

xm,

km,

nf,

sum( CASE WHEN zt = 5 THEN je END ) AS syje,

sum( CASE WHEN zt > 1 AND zt < 5 THEN je END ) AS spdj

FROM

uf_jfsyls

GROUP BY

xm,

km,

nf

) sy ON sy.xm = t1.xm

AND sy.km = t1.km

AND sy.nf = t1.nf

经费预算与调整记录与使用记录输出使用进度搭建过程记录_使用记录_11


7.1如果为空则计算为0

SELECT

t1.xm,

t1.km,

t1.nf,

xm.yswd,

km.kmlx,

isnull( ys.je, 0 ) AS je,

ys.bzlc,

ys.ytsmjcsyj,

isnull( dz.wcdz, 0 ) AS wcdz,

isnull( dz.spdza, 0 ) AS spdza,

isnull( dz.spdzb, 0 ) AS spdzb,

isnull( sy.syje, 0 ) AS syje,

isnull( sy.spdj, 0 ) AS spdj

FROM

( SELECT xm, km, nf FROM uf_jfys UNION SELECT xm, km, nf FROM uf_jftzls ) t1

LEFT JOIN uf_jfsb xm ON xm.id = t1.xm

LEFT JOIN uf_km km ON km.id = t1.km

LEFT JOIN uf_jfys ys ON ys.xm = t1.xm

AND ys.km = t1.km

AND ys.nf = t1.nf

LEFT JOIN (

SELECT

xm,

km,

nf,

sum( CASE WHEN zt = 5 THEN dzje END ) AS wcdz,

sum( CASE WHEN zt > 1 AND zt < 5 AND dzje > 0 THEN dzje END ) AS spdza,

sum( CASE WHEN zt > 1 AND zt < 5 AND dzje < 0 THEN dzje END ) AS spdzb

FROM

uf_jftzls

GROUP BY

xm,

km,

nf

) dz ON dz.xm = t1.xm

AND dz.km = t1.km

AND dz.nf = t1.nf

LEFT JOIN (

SELECT

xm,

km,

nf,

sum( CASE WHEN zt = 5 THEN je END ) AS syje,

sum( CASE WHEN zt > 1 AND zt < 5 THEN je END ) AS spdj

FROM

uf_jfsyls

GROUP BY

xm,

km,

nf

) sy ON sy.xm = t1.xm

AND sy.km = t1.km

AND sy.nf = t1.nf

经费预算与调整记录与使用记录输出使用进度搭建过程记录_字段_12

7.2计算调整后金额和可用金额

SELECT

t1.xm,

t1.km,

t1.nf,

xm.yswd,

km.kmlx,

isnull( ys.je, 0 ) AS je,

isnull( ys.je, 0 ) + isnull( dz.wcdz, 0 ) AS dzhje,

ys.bzlc,

ys.ytsmjcsyj,

isnull( dz.wcdz, 0 ) AS wcdz,

isnull( dz.spdza, 0 ) AS spdza,

isnull( dz.spdzb, 0 ) AS spdzb,

isnull( sy.syje, 0 ) AS syje,

isnull( sy.spdj, 0 ) AS spdj,

isnull( ys.je, 0 ) + isnull( dz.wcdz, 0 ) + isnull( dz.spdza, 0 ) - isnull( sy.syje, 0 ) - isnull( sy.spdj, 0 ) AS kyje

FROM

( SELECT xm, km, nf FROM uf_jfys UNION SELECT xm, km, nf FROM uf_jftzls ) t1

LEFT JOIN uf_jfsb xm ON xm.id = t1.xm

LEFT JOIN uf_km km ON km.id = t1.km

LEFT JOIN uf_jfys ys ON ys.xm = t1.xm

AND ys.km = t1.km

AND ys.nf = t1.nf

LEFT JOIN (

SELECT

xm,

km,

nf,

sum( CASE WHEN zt = 5 THEN dzje END ) AS wcdz,

sum( CASE WHEN zt > 1 AND zt < 5 AND dzje > 0 THEN dzje END ) AS spdza,

sum( CASE WHEN zt > 1 AND zt < 5 AND dzje < 0 THEN dzje END ) AS spdzb

FROM

uf_jftzls

GROUP BY

xm,

km,

nf

) dz ON dz.xm = t1.xm

AND dz.km = t1.km

AND dz.nf = t1.nf

LEFT JOIN (

SELECT

xm,

km,

nf,

sum( CASE WHEN zt = 5 THEN je END ) AS syje,

sum( CASE WHEN zt > 1 AND zt < 5 THEN je END ) AS spdj

FROM

uf_jfsyls

GROUP BY

xm,

km,

nf

) sy ON sy.xm = t1.xm

AND sy.km = t1.km

AND sy.nf = t1.nf

经费预算与调整记录与使用记录输出使用进度搭建过程记录_字段_13


8.1创建视图

CREATE VIEW jfyssyjd AS

经费预算与调整记录与使用记录输出使用进度搭建过程记录_数据_14

8.2查询验证

经费预算与调整记录与使用记录输出使用进度搭建过程记录_使用记录_15

8.3创建虚拟表前增加唯一值字段:

concat(t1.xm,'-',t1.km,'-',t1.nf) as id,

经费预算与调整记录与使用记录输出使用进度搭建过程记录_字段_16

8.4更新视图

ALTER VIEW jfyssyjd AS

经费预算与调整记录与使用记录输出使用进度搭建过程记录_字段_17

9.1创建虚拟表

经费预算与调整记录与使用记录输出使用进度搭建过程记录_使用记录_18

9.2设置字段

经费预算与调整记录与使用记录输出使用进度搭建过程记录_数据_19

9.3创建查询列表

经费预算与调整记录与使用记录输出使用进度搭建过程记录_使用记录_20

9.4设置显示字段

经费预算与调整记录与使用记录输出使用进度搭建过程记录_数据_21

9.5查询条件允许多选

经费预算与调整记录与使用记录输出使用进度搭建过程记录_使用记录_22

9.6设置统计

经费预算与调整记录与使用记录输出使用进度搭建过程记录_使用记录_23

9.7查看效果

经费预算与调整记录与使用记录输出使用进度搭建过程记录_数据_24








举报

相关推荐

0 条评论