Re[2]: SQL - Выбрать записи
От: Аноним  
Дата: 24.08.06 21:03
Оценка:
Здравствуйте, FunnyRabbit, Вы писали:

FR>Здравствуйте, Аноним, Вы писали:


FR>Слышь Аноним, поддерживает твой Paradox подзапросы?


Похоже что нет. Я работаю c BDE/Delphi. Какие есть варианты без подзапросов?

P.S. Странно, я думал это довольно частовстречающаяся задача и должны быть наработаны готовые решения.

P.P.S. Я Wyfinger, просто пишу с работы.
Re[3]: SQL - Выбрать записи
От: Аноним  
Дата: 24.08.06 21:09
Оценка:
Здравствуйте, vl.v, Вы писали:

VV>Здравствуйте, Wyfinger, Вы писали:


W>>Здравствуйте, Все!


W>>Большое спасибо за ответы, завтра проверю на работе.


VV>А сегодня почему не на работе-то?

VV>Вроде четверг.

Не знаю как у Вас, а я заканчиваю работать в 6^00, просто день у меня начинается на 9 часов раньше чем в Москве.
Re[3]: SQL - Выбрать записи
От: Аноним  
Дата: 24.08.06 21:18
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Здравствуйте, Demon, Вы писали:


D>>Дабы прекратить споры на тему парадокса и вложенных запросов вот вариант без них.

D>>
D>>SELECT t1.*
D>>FROM Detail AS t1
D>>JOIN Detail AS t2
D>>ON t1.MId = t2.MId
D>>GROUP BY t1.Id, t1.MId
D>>HAVING count(*)>=2;
D>>


Огромное спачибо!, Это решение работает.

Только Вы не могли бы объяснить, почему если написать в первой строке:
SELECT t1.*, count(*) AS cnt


Выдается сообщение:

When GROUP BY exists, every simple field in projectors must be in GROUP BY.


Что оно означает? Что значит every simple field? Получается в GROUP BY нужно перечислить все поля, физически содержащиеся в таблице?
Re[4]: SQL - Выбрать записи
От: FunnyRabbit Россия  
Дата: 25.08.06 05:27
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Lloyd, Вы писали:


L>>Здравствуйте, Demon, Вы писали:


D>>>Дабы прекратить споры на тему парадокса и вложенных запросов вот вариант без них.

D>>>
D>>>SELECT t1.*
D>>>FROM Detail AS t1
D>>>JOIN Detail AS t2
D>>>ON t1.MId = t2.MId
D>>>GROUP BY t1.Id, t1.MId
D>>>HAVING count(*)>=2;
D>>>


А>Огромное спачибо!, Это решение работает.


А>Только Вы не могли бы объяснить, почему если написать в первой строке:

А>
SELECT t1.*, count(*) AS cnt


А>Выдается сообщение:

А>

When GROUP BY exists, every simple field in projectors must be in GROUP BY.


А>Что оно означает? Что значит every simple field? Получается в GROUP BY нужно перечислить все поля, физически содержащиеся в таблице?


Да.
То что меня не убивает, делает меня умнее.
Re[4]: SQL - Выбрать записи
От: Lloyd Россия  
Дата: 25.08.06 06:56
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Выдается сообщение:

А>

When GROUP BY exists, every simple field in projectors must be in GROUP BY.


А>Что оно означает? Что значит every simple field?


Означает, что список неагрегатных полей в секции select должен совпадать со списком полей в секции group by.

А>Получается в GROUP BY нужно перечислить все поля, физически содержащиеся в таблице?
Re: От модератора
От: IB Австрия http://rsdn.ru
Дата: 25.08.06 07:56
Оценка: 4 (1) +2
Здравствуйте, FunnyRabbit & Lloyd & все, все, все... Вы много чего писали :

1. Завязывайте с разборками, здесь все-таки технический форум, а не филиал курилки.
2. Избыточное цитирование крайне не приветствуется, игнорирование этого предупреждения награждается профилактическим баном.
3. 2 FunnyRabbit, если не хочешь/не можешь/не умеешь отвечать развернуто, то лучше вообще себя не утруждай, особенно если вопрос не относится к Ораклу.
4. 2 Lloyd, то же самое, если тебя не устраивает качество ответа оппонента, тогда сразу поясняй, что тебя не устраивает, а не начинай игру в угадайку.

Все обсуждения вопросов модерирования на moderator@rsdn.ru
Мы уже победили, просто это еще не так заметно...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.