【发布时间】:2015-01-17 05:10:55
【问题描述】:
我有两张表,一张包含员工详细信息,如下所示
Employee ID | Employee Name | Start Date | Termination Date |
2234 | John Smith | 2014-01-03 | |
3333 | Jane Doe | 2014-04-22 | 2014-10-31 |
1234 | Bobby Wilson | 2013-12-10 | |
我的第二张表有按月计算的销售额
看起来是这样
Employee ID | 2013-12 | 2014-01 | 2014-02 | 2014-03 | 2014-04 | etc | etc
2234 | | 199.99 | 130.00 | 300.00 | 230.99 | etc | etc
3333 | | | | | 204.02 | etc | etc
1234 | 455.99 | 332.32 | 334.00 | 553.00 | 334.99 | etc | etc
所以我需要做一个新的查询,帮助我显示员工的趋势,了解他们第一个月的员工销售数量、第二个月的销售额、第三个月的销售额等。员工开始了。超过 12 个月或更长时间
所以新表如下所示
Employee | Month 1 | Month 2 | Month 3 | Month 4 | etc | etc |
2234 | 199.99 | 130.00 | 300.00 | 230.99 | etc | etc |
3333 | 240.02 | (month 2) | (month 3)| (month 4)| etc | etc |
1234 | 455.99 | 332.32 | 334.00 | 553.00 | etc | etc |
所以我知道我们可以通过员工 ID 加入这两个表 我知道我们可以根据员工的开始日期确定他们的第一个月 但是如何用 SQL 写出这个查询呢?
【问题讨论】:
-
这就是糟糕的表格设计给您带来麻烦的地方。从理论上讲,我可以看到在 VBA 中的哪个位置可以去掉开始日期的日期,然后使用年月作为指针,但我认为你不能直接用 SQL 做到这一点。由于每个人的年月不同,因此无法将一张表连接到另一张表并以您想要的方式显示数据。
-
这个问题和它有什么不同吗:stackoverflow.com/questions/27951872/…?
-
好吧,您可以在 SQL 中使用 FORMAT 去除一天,我们将其去除为月份,这并不困难。但是弄清楚如何检查每个员工的第一个月与他们的开始日期是什么
-
@MaciejLos 这实际上是我昨天问的第一个问题的第二部分
-
有没有办法检查第一个月的销售情况?即使我们将其剥离为 yyyy/mm ?