CREATE TEMPORARY TABLE datasource (
dept CHAR(3),
subdept char(3),
class CHAR(1),
submissiondate DATE
);
INSERT INTO DataSource (dept, subdept, class, submissiondate)
VALUES ('ENG','CS','A','12-06-2012'),
('ENG','CS','A','20120819'), -- MAKE Way for MDY format in database
('ENG','EE','A','02-04-2012'),
('ENG','CS','A','12-08-2013'),
('ENG','EE','A','02-06-2012'),
('SCI','PHY','B','11-04-2012');
Запрос
SELECT dept, subdept,c lass, COUNT(*) as cnt,
MIN(Submissiondate) as started_date,
MAX(Submissiondate) as last_date
FROM @DataSource
GROUP BY dept, subdept, class, YEAR(SubmissionDate)
Результирующий набор
+------+---------+-------+-----+--------------+------------+
| dept | subdept | class | cnt | started-date | last-date |
+------+---------+-------+-----+--------------+------------+
| ENG | CS | A | 2 | 2012-08-19 | 2012-12-06 |
| ENG | CS | A | 1 | 2013-12-08 | 2013-12-08 |
| ENG | EE | A | 2 | 2012-02-04 | 2012-02-06 |
| SCI | PHY | B | 1 | 2012-11-04 | 2012-11-04 |
+------+---------+-------+-----+--------------+------------+