Если ваша dbms поддерживает cte, вы можете сделать это;
Данные испытаний
DECLARE @tbl TABLE
(
id VARCHAR(100),
date_from VARCHAR(100),
date_to VARCHAR(100),
price INT
)
INSERT INTO @tbl
VALUES
('CK1','22-12-2012','29-12-2012',800),
('CK1','22-12-2012','29-12-2012',1200),
('CK2','22-12-2012','29-12-2012',1400),
('CK2','22-12-2012','29-12-2012',1800),
('CK2','22-12-2012','29-12-2012',2200)
Запрос
;WITH CTE
AS
(
SELECT
RANK() OVER(PARTITION BY id ORDER BY price ASC) AS RowNbr,
tbl.*
FROM
@tbl AS tbl
)
SELECT
*
FROM
CTE
WHERE
CTE.RowNbr=1