Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как получить записи с единственным значением поля? [Access]


Ш-К ©   (2007-03-02 03:58:00) 

Есть таблица table1 (f1, f2, f3).
Надо получить все те записи, где значение у поля f1 встречается один раз.


~SerJant~   (2007-03-02 10:48:00) [1]

немного проще )))

SELECT f1, f2, f3
FROM table1 t
WHERE (select count(t1.f1) from table1 t1 where t1.f1 = t.f1)=1


Atanas   (2007-03-02 08:36:00) [2]

Прошу прощения, вот так

SELECT f1, f2, f3
FROM table1
WHERE f1 IN
(
  SELECT f1
  FROM table1
  GROUP BY f1
  HAVING Count(f1)=1
)

А вот этот вариант работать не будет

SELECT f1, f2, f3
FROM table1
GROUP BY f1
HAVING Count(f1)=1

Потому, все что не в group by должно быть агрегатными функциями а у тебя там поля f2 и f3


Atanas   (2007-03-02 08:33:00) [3]

В предыдущем варианте замени t1 на f1 т.е.

SELECT f1, f2, f3
FROM table1
WHERE t1 IN
(
  SELECT f1
  FROM table1
  GROUP BY f1
  HAVING Count(f1)=1
)

И все работает


Ш-К   (2007-03-02 06:01:00) [4]

У меня был такой вариант, только неправилиный )


ЮЮ   (2007-03-02 05:39:00) [5]

SELECT f1, f2, f3
FROM table1
WHERE t1 IN
 (
   SELECT f1
   FROM table1
   GROUP BY f1
   HAVING Count(f1)=1
 )


Ш-К   (2007-03-02 05:06:00) [6]

Нашел:
SELECT f1, Min(f2), Min(f3)
FROM table1
GROUP BY f1
HAVING Count(f1)=1


А так не работает:
SELECT f1, f2, f3
FROM table1
GROUP BY f1
HAVING Count(f1)=1


Наверх

Титульная страница Поиск, карта сайта Написать письмо