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

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

связка SELECT FROM WHERE ORDER BY выдает ошибку! [D5, dBase, FoxPro]


Страницы:   1 2

LAndreyV ©   (2004-04-01 11:43:00) 

Привет всем. Помогите плз.
SELECT * FROM base1 WHERE name='abc' GROUP BY name
выдает такую ошибку:
`When GROUP BY exists, every simple field in projectors must be in GROUP BY`

В чем проблемс????


TL   (2004-04-01 13:28:00) [1]

Если верно понял то тебе, LAndreyV, надо наверно вот что :

SELECT *
FROM base1
WHERE name in  
(select name
from base1
where name= 'abc'
GROUP BY name)


LAndreyV   (2004-04-01 12:13:00) [2]

Всем спасибо, кажись я понял в чем был не прав!


LAndreyV   (2004-04-01 12:09:00) [3]

> sniknik ©   (01.04.04 12:04) [20]

они не полностью одинаковые, но у этих 50 записей поля name1, name2одинаковые


LAndreyV   (2004-04-01 12:05:00) [4]

запрос
`SELECT name1 FROM base1 GROUP BY name2`
отлично работает, но он выбирает записи изо всей БД,
а мне надо чтобы он делал тоже самое, но с записями отобранными с помощью WHERE


sniknik   (2004-04-01 12:04:00) [5]

> через WHERE он мне выдаст 50 одинаковых записей, а зачем мне смотреть 50 одинаковых записей, если нужна одна???!!!
если они полностью одинаковы то может тебе нужен DISTINCT ?


Соловьев   (2004-04-01 12:04:00) [6]


> LAndreyV ©   (01.04.04 11:58) [15]

тогда определитесь с критерием - возможно вам и нужна будет групировка, опишите таблицу и что надо получить.


Anatoly Podgoretsky   (2004-04-01 12:04:00) [7]

Если нужна одна, то надо использовать предикат DISTINCT

А если серьезно, то тебе надо временно отложить программирование и все усилия направить на изучения должного диалекта SQL, в данном случае LocalSql если ты используешь БДЕ, иначе тебе удачи не видать. Также не помешает прочитать, что либо по теории реляционных баз данных, Дейт, Грабер и других достойных авторов.


LAndreyV   (2004-04-01 12:03:00) [8]

блин пардон! сабж не правельный


Курдль   (2004-04-01 11:59:00) [9]

Так Вы определитесь, группировка или сортировкаВам нужна?
А то в сабже одно, а в теле Вашего вопроса - другое.
Агрегатные функции извлекают единственное значение из множества данных (сумму, максимум, количество и т.п.).
Напр select CUSTOMER, sum(PRICE) from TABLE1 group by CUSTOMER


LAndreyV   (2004-04-01 11:58:00) [10]

через WHERE он мне выдаст 50 одинаковых записей, а зачем мне смотреть 50 одинаковых записей, если нужна одна???!!!


LAndreyV   (2004-04-01 11:57:00) [11]

Мне не надо сортировать (ORDER BY), а нужно выбрать только по одному экземпляру(именно GROUP BY).

SELECT name3 FROM base1 WHERE name1='abc' and name2='dfg' GROUP BY name4


Соловьев   (2004-04-01 11:55:00) [12]

Мда, не вьехал сначала - а зачеи собственно было where?

> LAndreyV ©   (01.04.04 11:43)

что нужно то? если where есть - ты уже и так отобрал записи


LAndreyV   (2004-04-01 11:54:00) [13]

Кто-нть может объяснить что не так делаю.
2Курдль             : Что значит `заагрегированы`?
2Anatoly Podgoretsky: Какой `агрегать`?


Соловьев   (2004-04-01 11:53:00) [14]

Пошаманим...

SELECT * FROM base1 WHERE name='abc' ORDERBY name


LexusR   (2004-04-01 11:52:00) [15]

GROUP BY используется для агрегации данных
при применении COUNT,SUMM,AVG,MIN,MAX

вопрос на засыпку : зачем он воткнут в данном запросе
вы наверно хотели ORDER BY


bushmen   (2004-04-01 11:52:00) [16]

Кстати, если работаете с базой через ADO, то надо бы update поставить :)


Курдль   (2004-04-01 11:51:00) [17]

И какой высокий смысл группировать по полю из условия WHERE?


bushmen   (2004-04-01 11:50:00) [18]

>такая же ошибка!!

Не верю - чудес не бывает.


Anatoly Podgoretsky   (2004-04-01 11:50:00) [19]

Где агрегат?


Johnmen   (2004-04-01 11:49:00) [20]

Проблемы с аглицким ? Или со словарём ?


Страницы:   1 2

Наверх

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