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

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

Использование Group by с полями типа BLOB [FB 1.5]


Страницы:   1 2

Leshiy ©   (2006-11-14 15:59:00) 

Здравствуйте.
Есть запрос:
Select
 O.OrdNo,
 O.Ord_Comment,
 sum ( W.wn_amount ) WCount
from
 Orders O
 left join Windows W on (W.OrderID=O.OrderID)
where
 O.OrderID=...
Group by 1,2


Он не работает т.к. поле Ord_Comment имеет тип Blob.
Преобразовать в строку его тоже нельзя.

Вариант:
Select
 O.OrdNo,
 O.Ord_Comment,
 (select sum(w.wn_amount) from Windows W where w.Orderid=O.OrderId) WCount
from
 Orders O
where
 O.OrderID=...

не всегда удобен на более сложных запросах

Как быть?


ЮЮ   (2006-11-15 10:13:00) [21]

Оно свое на каждую запись Orders, но соединяя её с другой таблицей  Windows {не поминай всуе имя его :)}(0..N), по полям которой и нужна сумма, он, естественно, получает его несколько раз


Johnmen   (2006-11-15 09:43:00) [22]


> Leshiy ©   (15.11.06 06:19) [8]
> Но мне нужно содержимое этого поля.


Оно одинаковое для всех записей одной группы?
Для записей разных групп оно разное?


ЮЮ   (2006-11-15 08:55:00) [23]


> В некоторых случаях приходится дублировать условия в запросе
> и подзапросах.


Странно, ведь это по сути подзапрос к Detail - таблице, как там могут появитьяся условия для мастер-таблицы


Leshiy   (2006-11-15 07:48:00) [24]

ЮЮ ©   (15.11.06 07:21) [9]
Варианты с переходам на другой сервер, а так-же заменой blob на varchar большого размера не подходят. т.к. работа ведется с готовым продуктом.
Кстати, чем он тебя так не устраивает?
В некоторых случаях приходится дублировать условия в запросе и подзапросах.
Глаз режет.
Может забить?


ЮЮ   (2006-11-15 07:21:00) [25]

Тогда только вариант 2 из твоего же вопроса.
Кстати, чем он тебя так не устраивает?

Или переходить на сервер, поддерживающий подзапрос не на уровне полей

Select
O.OrdNo,
O.Ord_Comment,
(select sum(w.wn_amount) from Windows W where w.Orderid=O.OrderId)WCount
from
Orders O


а на уровне таблиц:

Select
O.OrdNo,
O.Ord_Comment,
W.WCount
from
Orders O
left join (select Orderid, sum(wn_amount) from Windows group by OrderId) WON W.OrderID=O.OrderID


Leshiy   (2006-11-15 06:19:00) [26]

DrPass ©   (14.11.06 20:51) [7]
Но мне нужно содержимое этого поля.


DrPass   (2006-11-14 20:51:00) [27]


> По БЛОБУ мне сортировка совсем не нужна, даже более того
> группировка в подобных запросах не нужна, но этого требуют
> агрегатные функции.

Если не нужна, то что тогда БЛОБ делает в агрегатной функции? Убери его из запроса


Leshiy   (2006-11-14 18:59:00) [28]

Sergey13 ©   (14.11.06 16:24) [2]
sniknik ©   (14.11.06 16:53) [3]

По БЛОБУ мне сортировка совсем не нужна, даже более того группировка в подобных запросах не нужна, но этого требуют агрегатные функции.


Jeer   (2006-11-14 16:58:00) [29]

clickmaker ©   (14.11.06 16:55) [4]

Использовать объектную СУБД - они могут по контексту с предварительной экспертизой:)


clickmaker   (2006-11-14 16:55:00) [30]


> А как ты предполагаешь группировать по БЛОБ-у?

по степени художественной ценности текста, может?


sniknik   (2006-11-14 16:53:00) [31]

> А как ты предполагаешь группировать по БЛОБ-у?
а сортировать? ;) (кстати сортировка предваряет группировку (без этого она просто не делается))

Leshiy
смысл это делать, зачем? ну ну по первым 20 (максимум 100) символам это я еще понимаю, но по гигабайтным массивам информации...??? ну какоя кому разница, что там в 1000000001-ом символе (пример), в одном блобе стоит "а", а во втором "о"? и что страшного случится если порядок этих двух записей будет "неправильным"? до этого места все одно никто не дочитает.
если же там нет больших обьемов, и весь твой комментарий укладывается к примеру в 1000 символов то не проще сделать такое строковое поле (VarChar())?


Sergey13   (2006-11-14 16:24:00) [32]

> не всегда удобен на более сложных запросах

А кому щас легко? А как ты предполагаешь группировать по БЛОБ-у?


Сергей М.   (2006-11-14 16:15:00) [33]

UDF


Страницы:   1 2

Наверх

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