0
|
LetEpsilonBeLessThanZero · 技术社区 · 6 年前 |
![]() |
1
1
您可以使用CTE生成所有月份值,要么形成固定的起始点,要么基于表中的最早日期:
使用最早开始日期为1990-11-17的数据(如您的示例中所示),可以生成333行:
然后,可以在联接到表的查询中使用它,例如:
假设您希望包括仍有工作的人,所以您需要允许结束日期为空(除非您正在为仍有工作的人使用神奇的结束日期值…) 将日期存储为字符串会更复杂一些,但您可以用类似的方式生成月份信息:
用少量的数据进行了非常轻微的测试,两种方法似乎都有效。 |
![]() |
2
0
如果您想得到月底受雇的员工,则可以在查询的where子句中使用last-day函数。此外,还可以在查询的group by子句中使用该函数。所以您的查询如下:
或者,如果您只想计算每月雇用的员工数,请使用下面的查询。
|
|
Johnny T · 基于当前值的SQL合并表[重复] 3 月前 |
![]() |
John D · 需要为NULL或NOT NULL的WHERE子句 4 月前 |
![]() |
ojek · 如何对SQL结果进行分组和编号? 4 月前 |
![]() |
senek · 如何在PL/SQL中将选择结果(列)放入数组中 4 月前 |
![]() |
Sax · 规范化Google表格(第一步) 4 月前 |
![]() |
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 4 月前 |
![]() |
Andrus · 如何在sql中查找第二个匹配项 4 月前 |