2

Mysql でテーブルを変換しようとしています。私はそれを行う方法を理解できません。誰かがそれを行う方法を教えてもらえますか? 入力と出力が与えられます。それがどのように行われるのか知りたいですか?

入力テーブル

+-------------+------------+------------------+-------------------+
| Employee_ID | Start_Date | Termination_Date | Performance_Level |
+-------------+------------+------------------+-------------------+
|           1 | 1/1/2007   | 3/1/2007         | Low               |
|           2 | 6/5/2004   | Null             | Medium            |
|           3 | 4/3/2003   | Null             | High              |
|           4 | 9/1/2002   | 4/15/2007        | Medium            |
|           5 | 4/6/2007   | 11/1/2007        | Low               |
|           6 | 7/1/2007   | Null             | High              |
|           7 | 3/2/2005   | 8/1/2007         | Low               |
+-------------+------------+------------------+-------------------+

出力テーブル

+---------+-----------------------------------+-----------------+-------------------+----------------+
| Period  |   Total_Employees_at_end_of_quarter | High_Performers | Medium_Performers | Low_Performers |
+---------+-----------------------------------+-----------------+-------------------+----------------+
| Q1-2007 |                                 4 |               1 |                 2 |              1 |
| Q2-2007 |                                 4 |               1 |                 1 |              2 |
| Q3-2007 |                                 4 |               2 |                 1 |              1 |
| Q4-2007 |                                 3 |               2 |                 1 |              0 |
+---------+-----------------------------------+-----------------+-------------------+----------------+

これは私が試したものです

select * from emp 
where date(sdate)< date'2007-04-01' and (date(tdate)> date'2007-03-31' or tdate is null);

select * from emp 
where date(sdate)< date'2007-07-01' and (date(tdate)> date'2007-06-30' or tdate is null);

select * from emp 
where date(sdate)< date'2007-010-01' and (date(tdate)> date'2007-09-30' or tdate is null);

select * from emp 
where date(sdate)< date'2008-01-01' and (date(tdate)> date'2007-12-31' or tdate is null);

個々のクエリがありますが、出力を提供する単一のクエリが必要です。

4

2 に答える 2

0

これを試して

SELECT QUARTER('2008-04-01');

http://dev.mysql.com/doc/refman/5.6/en/date-and-time-functions.html#function_quarter

および CONCAT()

于 2013-06-22T00:11:02.743 に答える