PiolotTH_ReportFrom/派诺报表SQL文件/应收情况概况表按SBU区分插入数据SQL.sql
李狗蛋 4c8304f04f 1
2025-07-02 10:10:05 +08:00

71 lines
2.3 KiB
Transact-SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

ALTER PROCEDURE YSQKGKSBU_GZTH
@FSDate NVARCHAR(100),
@FEDate NVARCHAR(100)
AS
BEGIN
-- 声明变量
DECLARE @StartDate DATE;
DECLARE @EndDate DATE;
DECLARE @LastDate Date;
-- 将输入的字符串日期转换为日期类型
SET @StartDate = CONVERT(DATE, @FSDate, 120); -- 假设输入的日期格式为 YYYY-MM-DD
SET @EndDate = CONVERT(DATE, @FEDate, 120); -- 假设输入的日期格式为 YYYY-MM-DD
-- 计算上一年的 12 月 31 日
SET @LastDate = DATEADD(YEAR, DATEDIFF(YEAR, 0, @StartDate) - 1, 0); -- 获取 @StartDate 的年份的 1 月 1 日
SET @LastDate = DATEADD(DAY, -1, DATEADD(YEAR, 1, @StartDate)); -- 获取上一年的 12 月 31 日
TRUNCATE TABLE YSQKGK_SBU_GZTH
--获取期初的数据,并填充
INSERT INTO YSQKGK_SBU_GZTH([SBU],[年初到期应收款额],[其中_年初应收款专责小组])
SELECT
SBU,
到期金额,
CASE WHEN
收款人 = '应收款专责小组' THEN 到期金额
ELSE null END AS '其中_年初应收款专责小组'
FROM ZRP_YingShouMingXi_yuyubo
where 订单日期 <= @LastDate
AND [到期金额] <> 0
--获取开始日期和结束日期的数据
INSERT INTO YSQKGK_SBU_GZTH([SBU],[本年到期应收款额],[其中_本年应收款专责小组])
SELECT
SBU,
到期金额,
CASE WHEN
收款人 = '应收款专责小组' THEN 到期金额
ELSE null END AS '其中_年初应收款专责小组'
FROM ZRP_YingShouMingXi_yuyubo
where [订单日期] >= @FSDate
AND [订单日期] <= @FEDate
AND [到期金额] <> 0
--进行分组合计并重新将数据填充到YSQKGK_SBU_GZTH中
SELECT
SBU,
SUM(年初到期应收款额) AS 年初到期应收款额,
SUM(其中_年初应收款专责小组) AS 其中_年初应收款专责小组,
SUM(本年到期应收款额) AS 本年到期应收款额,
SUM(其中_本年应收款专责小组) AS 其中_本年应收款专责小组
INTO #TEMP1
FROM YSQKGK_SBU_GZTH
GROUP BY SBU
TRUNCATE TABLE YSQKGK_SBU_GZTH
INSERT INTO YSQKGK_SBU_GZTH([SBU],[年初到期应收款额],[其中_年初应收款专责小组],[本年到期应收款额],[其中_本年应收款专责小组])
SELECT * FROM #TEMP1
--记录本年到期应收款额的总和,并更新占比字段
DECLARE @SUMDQJE DECIMAL(23, 10);
SELECT @SUMDQJE = SUM([本年到期应收款额]) FROM YSQKGK_SBU_GZTH
UPDATE YSQKGK_SBU_GZTH
SET [占比] = FORMAT(ROUND([本年到期应收款额] / @SUMDQJE * 100, 2), '0.##') + '%';
--更新变化字段
UPDATE YSQKGK_SBU_GZTH
SET [变化] = ISNULL([本年到期应收款额],0) - ISNULL([年初到期应收款额],0)
END