![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Группировка в таблице с текстовыми полями [D7, IB6.x]
Алексей_73 © (2007-06-20 09:42:00)Здравствуйте, уважаемые Мастера!
Имеется таблица из двух строк с одинаковыми текстовыми данными кроме одного поля, в одном поле текст разный.
Подскажите, пожалуйста, как выполнить SQL-запрос с группировкой. С цифровыми данными понятно, простой запрос типа такого Select field1, field2, field3, sum(field4), field5 from table_name group by field1, field2, field3, field5, а как сделать SQL-запрос когда поле field4 имеет строковый тип?
Desdechado (2007-06-21 11:08:00) [1]> у него просто числа записаны в строковое поле
тады CAST
Johnmen (2007-06-21 10:07:00) [2]
> Anatoly Podgoretsky © (21.06.07 09:32) [12]
> Да у него просто числа записаны в строковое поле :-)
Глубоко! :)
Во интересно получится, когда он LIST применит... :)))
Anatoly Podgoretsky (2007-06-21 09:32:00) [3]Да у него просто числа записаны в строковое поле :-)
Алексей_73 (2007-06-21 07:28:00) [4]Большое спасибо всем за помощь
Грициан (2007-06-20 15:33:00) [5]Взять FB 2.1 или дятла, там есть необходимая тебе агрегатная функция LIST
ЗЫ. За использование IB 6.x нужно расстреливать
sniknik (2007-06-20 13:33:00) [6]ну я так понял, что он и не сделал, потому и вопрос, что хочется, а не может...
Johnmen (2007-06-20 12:45:00) [7]
> sniknik © (20.06.07 12:21) [7]
> > В реальной базе, конечно, много строк.и в этой реальной
> базе есть поле типа текст(нехилое наверное) которое в большинстве
> своем повторяется? (иначе зачем по нему группировать)
Если бы у него оно было именно "текстовое", то группировку он по нему не сделал бы...
sniknik (2007-06-20 12:21:00) [8]> В реальной базе, конечно, много строк.
и в этой реальной базе есть поле типа текст(нехилое наверное) которое в большинстве своем повторяется? (иначе зачем по нему группировать)
про нормализацию чтонибудь слышал? в нормальном варианте у тебя бы должно быть 2 таблицы, в одной, справочной должно быть список этих текстовых полей (их вариантов) в единственном экземпляре каждый, а в основной только ссылки на эти поля справочника (столько сколько нужно, но повторяющиеся ссылаются на одно поле)...
вот. если бы было по правильному, то группировку пришлось бы делать по числовому полю (ссылке на текст). это бы и проблем уменьшило (нет нужды в извращенной группировке), и скорости работы с этой таблицей добавило, и размер уменьшило...
(если я конечно правильно угадал твою ситуацию... вон у Johnmen-а другая интерпретация. ты бы прояснил обстановку чтоли.)
> да и вообще интересно, как это делается
реально так не делается, этого стараются всеми силами избежать.
Sergey13 (2007-06-20 11:51:00) [9]> [4] Алексей_73 (20.06.07 11:33)
> это для ясности проблемы
Это ты здорово прояснил. 8-)
Чего надо то? Конкретно.
Johnmen (2007-06-20 11:39:00) [10]Какая связь между конкатенецией строк и построением отчета?
Алексей_73 (2007-06-20 11:33:00) [11]Таблица из двух сток -э то для ясности проблемы простейший пример
В реальной базе, конечно, много строк.
А нужно для формирования отчета, да и вообще интересно, как это делается
Desdechado (2007-06-20 10:53:00) [12]> С цифровыми данными понятно, sum(field4)
> как сделать SQL-запрос когда поле field4 имеет строковый тип?
Оригинально. И что ты там суммировать хочешь?
sniknik (2007-06-20 10:36:00) [13]> Имеется таблица из двух строк с одинаковыми текстовыми данными кроме одного поля, в одном поле текст разный.
???
оригинально, всего 2 строки, во всех текст одинаковый, а в одном разный... 2-1=1 т.е. у тебя получается 2 уникальные строки с уникальным текстом. а нужна ли тогда группировка вообще?
Johnmen (2007-06-20 10:13:00) [14]ПисАть хранимую процедуру...