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

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

вложенный select ??? [D7, FB1.5]


koks ©   (2004-07-26 13:24:00) 

Уважаемые мастера!

Как правильно посчитать количество уникальных значений поля в таблице, соотв условию выборки

Пишу:
 select count(idx) from mdata where (amas_id = 50)  ->>  получаю 2000 - это общее число записей по запросу

Далее:
 select distinct count(idx) from mdata where (amas_id = 50) ->> получаю опять 2000 ?????

Ну ладно, пишу:

 select count(idx) from (select distinct idx from mdata where (amas_id = 50))  ->> ошибка в синтаксисе на втором selecte...

подскажите, в чем грабли - неужели в FB/IB нельзя писать вложенные select-ы.


koks   (2004-07-26 14:14:00) [1]

я так понимаю что речь идет о тех pdf-ках котрые можно качнуть c ibase.ru. конкретно SQL-reference. у чож - буду рыть

Спасибо за помощь !!


Johnmen   (2004-07-26 14:08:00) [2]

Так в стандартной документации. Полное описание синтаксиса SELECT.


koks   (2004-07-26 14:05:00) [3]

ой блин... где бы почитать про весь этот высший пилотаж...


Соловьев   (2004-07-26 13:48:00) [4]

можно так
select (select * from table1)
from table2

или

select *
from table2
where id2 = any (select id1 from table2)


koks   (2004-07-26 13:42:00) [5]

Ну так вторая часть моего вопроса и была про это... selext из selecta.

Значит нельзя - жаль - но я понимаю что можно внутренний селест вынести в отдельную ХП или представление... вы наверное юто имели в виду под "можно"...


bushmen   (2004-07-26 13:39:00) [6]

Но это в MSSQL


bushmen   (2004-07-26 13:38:00) [7]

select count(a.idx) from (select distinct idx from mdata where (amas_id = 50)) a

А так?


Johnmen   (2004-07-26 13:37:00) [8]

Потому, что селект из селекта недопустим.


koks   (2004-07-26 13:33:00) [9]

select count(distinct idx) from mdata where (amas_id = 50)
 
!!!! Спасибо - заработало.

Ну а насчет вложенных select-ов, почему у меня в последнем запросе синт. ошибка.


bushmen   (2004-07-26 13:26:00) [10]

select count(distinct idx) from mdata where (amas_id = 50)

А так?


Johnmen   (2004-07-26 13:26:00) [11]

1. select count(distinct idx)
2. можно


Наверх

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