|
|
|
select как поле
|
|||
|---|---|---|---|
|
#18+
Имею мастер-таблицу TM и детал-таблицу TD, причем в детал имеется поле T=TRUE/FALSE. Могу получить полную выборку с подсчетом вхождений для некоторого поля TM.A типа : SELECT tm.a, count(*) FROM tm,td WHERE tm.td=td.td GROUP BY tm.a, Могу также сделать ту же выборку для которой в детайл-таблице будет TRUE: SELECT tm.a, count(*) FROM tm,td WHERE tm.td=td.td and td.T=true GROUP BY tm.a , а хочу выполнить такой запрос: SELECT tm.a, count(*), (select TMA.a, count(*) from td where TMA.td=td.td and td.T=true group by TMA.a) FROM tm TMA, td WHERE tm.td=td.td GROUP BY tm.a. Но ОНО не работает. То есть работает но подзапрос в поле возвращает только 0, а хочется, чтобы он возвращал количество истинных строк (как во втором запросе). Подскажите, пожалуйста, почему? И как это исправить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2003, 17:14 |
|
||
|
select как поле
|
|||
|---|---|---|---|
|
#18+
SELECT tm.a, count(*), ( select TMA.a, count(*) from td where TMA.td=td.td and ^^^^^^^^^^^^^^ Подзапрос может возвращать только одно значение. Если опечатка и неработает - может бага. Пробуй FB1.4 Beta4 - скоро будет RC1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2003, 20:11 |
|
||
|
select как поле
|
|||
|---|---|---|---|
|
#18+
Если в поле сформировать (SELECT count(*)) - тоже не работает. Может быть, я немного напустил туману вопросом. Человеческим языком вопрос может звучать так: - есть таблица, поле которой ссылается на другую; - в другой таблице есть поле <TRUE>/<FALSE>; - необходимо получить соотношение <TRUE>/<ALL> в главной таблице для групп записей. В классических СУБД это делается суммированием "правильных" -> суммированием "всех" -> делением для каждой группы записей. А как это сделать в SQL одним оператором, не создавая промежуточных таблиц? Я пробовал в одном поле сделать подзапрос который был бы ограничен текущим значением из "верхнего" запроса. Однако ограничение не работает, ибо возвращает 0. Может быть оно не работает вообще таким образом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2003, 09:46 |
|
||
|
select как поле
|
|||
|---|---|---|---|
|
#18+
Извините за беспокойство, я уже разобрался... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2003, 12:27 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32137212&tid=1580660]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
22ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 322ms |

| 0 / 0 |
