which will run on SQl Server 2000 and higher
CREATE TABLE
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
SELECT t.* FROM
JOIN(
SELECT MIN(sale_date) AS MinDAte, MAX(sale_date) AS MaxDate
FROM
GROUP BY YEAR(sale_date), MONTH(sale_date)) x ON t.sale_date = x.MaxDate
OR t.sale_date = x.MinDAte
for 2005 and ... a small modification according to Martin's code (see where clause)
WITH T
AS (SELECT *,
ROW_NUMBER() OVER (PARTITION BY Year(sale_date), MONTH(sale_date)
ORDER BY sale_date) RN,
ROW_NUMBER() OVER (PARTITION BY Year(sale_date), MONTH(sale_date)
ORDER BY sale_date DESC) RN2
FROM
SELECT sale_id,
sale_date
FROM T
WHERE 1 IN(RN ,RN2)
source
share