2010-08-10 4 views
2

Я просматривал форумы, пытаясь найти решение моей проблемы.Выбор всех значений из строки на основе одного отдельного столбца

У меня есть таблица в SQL Server 2000 с именем result со следующими данными;

City  Price DepDate  RetDate 
Barcelona 145 2010-05-15 2010-05-20 
New York 400 2010-06-20 2010-06-20 
Barcelona 160 2010-05-17 2010-05-22 
New York 325 2010-05-10 2010-05-18 
Istanbul 250 2010-06-22 2010-06-27 

Я хочу запросить, что в SQL Server 2000, так что все столбцы возвращаются, но это отчетливое/на стоимость создания эксклюзивного города и отображается только самая низкая цена.

Так я хотел бы, чтобы вернуться в следующем

Barcelona 145 2010-05-15 2010-05-20 
New York 325 2010-05-10 2010-05-18 
Istanbu 250 2010-06-22 2010-06-27 

Я не могу для своей жизни понять, как это сделать, я должен быть легким, и я уверен, что я буду чувствовать себя глупыми, когда решения.

Кто-нибудь знает, как это сделать?

Brgds, Eric

ответ

1
SELECT 
    A1.* 
FROM 
    [TableName] A1 
    INNER JOIN 
    (
     SELECT 
      A.City 
      , A.Price 
      , MIN(A.DepDate) AS DepDateMin 
     FROM 
      [TableName] A 
      INNER JOIN 
      ( SELECT 
        City 
        , MIN(Price) AS PriceMin 
       FROM 
        [TableName] 
       GROUP BY City 
      ) B ON A.City = B.City AND A.Price = B.PriceMin 
     GROUP BY 
      A.City, A.Price 
    ) B1 ON A1.City = B1.City AND A1.Price = B1.PriceMin AND A1.DepDate = B2.DepDateMin 
+0

Необходимость изменения в запросе, чтобы дать псевдоним для MIN (Цена) и условия должны быть A.price = B. <цена Псевдоимя >, после этого этот запрос будет работать –

+0

It Works! Большое вам спасибо за это, надеюсь, я пойму, что заставляет его работать. Я был в этом целую вечность. Спасибо!! –

+0

Один быстрый вопрос: легко ли это изменить, чтобы цена также была отличной? –

0

попробовать это один

select City,Price,DepDate,,RetDate from Your_table a 
where a.Price = (select min(Price) from Your_table b 
       where a.city = b.city group by city) 
+0

Это, похоже, тоже работает :) –

Смежные вопросы