如何同时统计本日,本月,本年以及同期,与同期比数据

gooyan 2015-10-10 11:23:36
有表如下,都是存储的某日,四个产品的数量
dt rfdl1 rfdl2 rfdl3 rfdl4
2014-01-01 1 2 3 4
2014-01-02 5 6 7 8
2014-01-03 9 10 11 12
2014-01-04 13 14 15 16
2015-01-01 5 8 10 4
2015-01-02 3 5 15 6
2015-01-03 4 7 5 10
2015-01-04 5 6 7 8

怎么统计各类数据的本日、本月(本月1日截至本日)、本年(本年1月1日截至本日)的相应数据,
以及同期数据,与同比比较的数据。例如下面是统计2015年1月3日相关的信息(不包括3号以后得数据)

本日 同期(日) 同比 本月 同期(月) 同比 本年 同期(年) 同比
rfdl1 4 9 -5 12 15 -3 12 15 -3
rfdl2 7 10 -3 20 18 2 20 18 2
rfdl3 .............................................................
rfdl4 .....................................................................

如果一下很难统计出rfdl1,rfdl2,rfdl3,rfdl4的信息。
那么能单独统计出rfdl1的相关信息吗?在程序里控制逐个去统计。


下面的语句也能逐步实现,有没有更好的方法呢?

select rfdl.rfdl,rfdlly.rfdlly,(rfdl.rfdl-rfdlly.rfdlly) rfdlsub,yfdl.yfdl,yfdlly.yfdlly,(yfdl.yfdl-yfdlly.yfdlly) yfdlsub,nfdl.nfdl,nfdlly.nfdlly,(nfdl.nfdl-nfdlly.nfdlly) nfdlsub
from
(select rfdl1 rfdl from fdlmgr where datatime='2015-01-03') rfdl,
(select rfdl1 rfdlly from fdlmgr where datatime='2014-01-03') rfdlly,
(select sum(rfdl1) yfdl from fdlmgr where datatime>='2015-01-01' and datatime<='2015-01-03') yfdl,
(select sum(rfdl1) yfdlly from fdlmgr where datatime>='2014-01-01' and datatime<='2014-01-03') yfdlly,
(select sum(rfdl1) nfdl from fdlmgr where datatime>='2015-01-01' and datatime<='2015-01-03') nfdl,
(select sum(rfdl1) nfdlly from fdlmgr where datatime>='2014-01-01' and datatime<='2014-01-03') nfdlly

...全文
670 3 打赏 收藏 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
道玄希言 2015-10-12
  • 打赏
  • 举报
回复
;with tbl(dt, rfdl1, rfdl2, rfdl3, rfdl4) as
(
select '2014-10-10', 1, 2, 3, 4 union all
select '2014-10-11', 5, 6, 7 , 8 union all
select '2014-10-12', 9, 10, 11, 12 union all
select '2014-10-13', 13, 14, 15, 16 union all
select '2015-10-10', 5, 8, 10, 4 union all
select '2015-10-11', 3, 5, 15, 6 union all
select '2015-10-12', 4, 7, 5, 10 union all
select '2015-10-13', 5, 6, 7, 8
),
tbl2 as
(
select dt, [品名], [数量] from tbl
unpivot
(
[数量] for [品名] in([rfdl1],[rfdl2],[rfdl3],[rfdl4])
) as T
)

select
t1.[品名],
t1.[数量] as [本日], t2.[数量] as [日同期],
(t1.[数量] - t2.[数量]) as [日同比],
t3.[数量] as [本月], t4.[数量] as [月同期],
(t3.[数量] - t4.[数量]) as [月同比],
t5.[数量] as [本年], t6.[数量] as [年同期],
(t5.[数量] - t6.[数量]) as [年同比]
from
(
select [品名],[数量] from tbl2 where dt = convert(nvarchar(10), getdate(), 120)
) as t1 -- 本日
left join
(
select [品名],[数量] from tbl2 where dt = convert(nvarchar(10), dateadd(YEAR, -1, getdate()), 120)
) as t2 -- 日同期
on t1.[品名] = t2.[品名]
left join
(
select [品名],sum([数量]) as [数量] from tbl2
where dt >= convert(nvarchar(7), getdate(), 120) + '-01'
and dt < convert(nvarchar(10), dateadd(DAY, 1, getdate()), 120)
group by [品名]
) as t3 -- 本月
on t1.[品名] = t3.[品名]
left join
(
select [品名],sum([数量]) as [数量] from tbl2
where dt >= convert(nvarchar(7), dateadd(YEAR, -1, getdate()), 120) + '-01'
and dt < convert(nvarchar(10), dateadd(DAY, 1, dateadd(YEAR, -1, getdate())), 120)
group by [品名]
) as t4 -- 月同期
on t1.[品名] = t4.[品名]
left join
(
select [品名],sum([数量]) as [数量] from tbl2
where dt >= convert(nvarchar(4), getdate(), 120) + '-01-01'
and dt < convert(nvarchar(10), dateadd(DAY, 1, getdate()), 120)
group by [品名]
) as t5 -- 本年
on t1.[品名] = t5.[品名]
left join
(
select [品名],sum([数量]) as [数量] from tbl2
where dt >= convert(nvarchar(4), dateadd(YEAR, -1, getdate()), 120) + '-01-01'
and dt < convert(nvarchar(10), dateadd(DAY, 1, dateadd(YEAR, -1, getdate())), 120)
group by [品名]
) as t6 -- 年同期
on t1.[品名] = t6.[品名]

------------------------------------------------------------------------------------------------------------------
品名 本日 日同期 日同比 本月 月同期 月同比 本年 年同期 年同比
rfdl1 4 9 -5 12 15 -3 12 15 -3
rfdl2 7 10 -3 20 18 2 20 18 2
rfdl3 5 11 -6 30 21 9 30 21 9
rfdl4 10 12 -2 20 24 -4 20 24 -4

firer2006 2015-10-11
  • 打赏
  • 举报
回复
这表谁设计的,说出来我保证不笑话它。
gooyan 2015-10-11
  • 打赏
  • 举报
回复
求助啊,来人啊,围观啊
摘 要 针对高校教师教学业绩管理流程复杂、数据填报不规范、多级审核效率低、统计分析滞后等问题,本文设计并实现一套基于SpringBoot+Vue前后端分离架构的高校教师教学业绩综合管理系统。系统后端以SpringBoot处理业务逻辑与接口开发,前端用Vue构建交互界面,MySQL存储数据,MD5加密保障账号安全,具备低耦合、易扩展、易维护特性。 系统按权限划分为教师、学院管理员、学校管理员三级角色,构建闭环式业绩管理体系。教师可完成信息维护、业绩录入、成果申报、审核跟踪、档案导出、智能咨询与社区互动;学院管理员负责教师管理、业绩初审、数据汇总、通知发布与修正申请;学校管理员承担权限分配、数据维护、业绩终审、统计分析、公告发布与日志审计。 系统实现业绩填报、初审、终审、统计归档全流程线上化,支持批量导入、敏感词过滤、数据可视化、7×24小时AI咨询等功能,规范管理流程、减少统计误差、提升审核效率。测试表明,系统满足高校教学业绩精细化、规范化、信息化管理需求,为教师考核、绩效评定、教学评估提供数据支撑,提升高校教学管理智能化水平。 关键词: SpringBoot;Vue;教学业绩管理;三级权限;前后端分离
内容概要:本文围绕“基于雅可比伪逆迭代的双臂协同轨迹规划与跟踪误差收敛性研究”展开,通过Matlab代码实现双机械臂系统的协同运动控制与轨迹跟踪。研究采用雅可比伪逆法求解冗余机械臂的逆运动学问题,实现末端执行器在笛卡尔空间中的精确轨迹规划,并引入迭代优化机制提升双臂协同作业的精度与稳定性。重点分析了轨迹跟踪过程中误差的收敛特性,验证了所提控制算法在多自由度强耦合系统中的有效性和鲁棒性,适用于复杂环境下需要高精度配合的机器人协同操作任务。该研究属于科研仿真复现类工作,融合了机器人运动学理论、数值计算方法与控制算法设计,为多机械臂系统提供了可行的轨迹规划与控制策略参考。; 适合人群:具备扎实的机器人学基础、自动控制理论知识以及良好Matlab编程能力的科研人员或研究生,尤其适合从事多机械臂协同控制、运动规划、逆运动学求解及误差分析等方向的研究者。; 使用场景及目标:①用于多机械臂系统的协同轨迹规划与运动控制算法研究;②深入理解基于雅可比伪逆法的逆运动学求解原理及其在冗余机构中的应用;③分析轨迹跟踪误差的收敛行为,评估控制策略的稳定性与精度;④作为高质量论文复现资源,支撑相关课题的仿真验证、算法对比与改进创新。; 阅读建议:建议结合Matlab代码与机器人运动学经典理论同步学习,重点关注雅可比矩阵的构建、伪逆运算的实现方式、误差反馈机制的设计以及迭代过程中的数值稳定性处理,同时可进一步拓展至非线性优化、避免奇异位形及实时控制策略的改进研究。

34,876

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧