![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
SQL [D7, IB6.x]
fantasy © (2006-06-11 02:28:00)Немогу собрать таблицу есть 2 поля F_1 и F_2 в таблице T_TOVAR нужен SQL запрос чтобы появилось 3 поле COUNT и в нем чесло повторений поля F_1 в таблице.
Тоесть если в поле F_1 три раза встречается одна и таже запись то то COUNT напротив всех этих полей будет 3.
помогите написать запрос.
PS Firebird_2_0.
fantasy (2006-06-12 18:30:00) [1]Спосмибо всем
Все работает
Desdechado (2006-06-11 17:50:00) [2]что-то я не понял, а как F_2 должно участвовать в запросе?
какое значение этого F_2 должно быть, если есть несколько записей с одинаковым F_1, но разным F_2?
PS
GROUP BY и HAVING тут бы лучше смотрелось
Sergey Masloff (2006-06-11 17:33:00) [3]sniknik © (11.06.06 16:07) [4]
FB позволяет начиная с 2.0, IB6x не позволяет
sniknik (2006-06-11 16:07:00) [4]> select F_1, F_2, (select count(*) from T_TOVAR D where D.F_1 = M.F_1) as cnt
> from T_TOVAR M
select M.F_1, M.F_2, D.cnt
from T_TOVAR M
LEFT JOIN (select F_1, count(*) as cnt from T_TOVAR group by F_1) D
ON M.F_1 = D.F_1
то же самое только должно быть быстрее, намного. (если конечно синтаксис FB вообще так позволяет... не в курсе)
atruhin (2006-06-11 15:13:00) [5]select F_1, F_2, (select count(*) from T_TOVAR D where D.F_1 = M.F_1) as cnt
from T_TOVAR M
fantasy (2006-06-11 14:47:00) [6]знаю что не эфективно но для меня это единственый выход
ПОМОГИТЕ С ПРИМЕРОМ.
ЗАРАНЕЕ БЛАГОДАРЕН.
Sergey Masloff (2006-06-11 07:57:00) [7]Считать подзапросом. Только неэффективно это. Обычно все же делают запрс с группировкой сворачивая повторяющиеся значения.