请假提交表中的请假不按任何顺序维护。我想创建一个视图,我可以在其中针对员工制作每月向量
Posted
技术标签:
【中文标题】请假提交表中的请假不按任何顺序维护。我想创建一个视图,我可以在其中针对员工制作每月向量【英文标题】:Leaves are not maintained in any order in leave submission table. I want to create a view where I can make a monthly vector of it against employees 【发布时间】:2016-12-15 16:12:10 【问题描述】:我的数据库中有一个表格用于提交请假。叶子被维护着,没有任何秩序。我想创建一个视图,我可以在其中针对员工制作每月的向量。 Emp_id
是外键。 st_date
是休假开始日期,end_date
是休假结束日期
【问题讨论】:
这里的问题是什么?我看到一张桌子的照片。你想从中检索什么? 这是一个请假提交的表格。我想创建一个视图,如果它针对员工,我可以在其中制作每月向量。 你说你想针对它制作一个月度向量。你能解释一下这是什么意思吗?意识到我们看不到您的屏幕,并且完全不知道您在这里要做什么。 请展示一些示例数据和预期输出。请查看下面的链接以了解如何提问,以快速获得帮助spaghettidba.com/2015/04/24/… 如果要汇总每个月的总假期,如果一个假期跨越多个月应该怎么办?应该全部归因于第一个月/上个月,还是其他一些逻辑? 【参考方案1】:如果您只想报告每位员工每月的总休假天数:
SELECT emp_id As EmployeeID,
DATENAME(YEAR,st_date) + '-' + RIGHT('0' + CONVERT(VARCHAR,DATEPART(MONTH,st_date)),2) AS [Month],
SUM(DATEDIFF(DAY,st_date,end_date)) AS DaysLeave
FROM Leave
GROUP BY emp_id,
DATENAME(YEAR,st_date) + '-' + RIGHT('0' + CONVERT(VARCHAR,DATEPART(MONTH,st_date)),2)
ORDER BY emp_id,
DATENAME(YEAR,st_date) + '-' + RIGHT('0' + CONVERT(VARCHAR,DATEPART(MONTH,st_date)),2)
注意:这会将跨越多个月的任何休假视为全部发生在休假开始的月份。它也不排除周末。
【讨论】:
以上是关于请假提交表中的请假不按任何顺序维护。我想创建一个视图,我可以在其中针对员工制作每月向量的主要内容,如果未能解决你的问题,请参考以下文章