Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > как сделать SELECT c cумированием по столбцу


Автор: shtril 26.7.2006, 19:01
есть таблицв
1 ива
1 но
1 в
2
3 се
3 ргей
как с помощью СЕЛЕКТА получить
1 иванов
2
3 сергей

прошу ответить по адресу
Shtril@rambler.ru

 

Автор: Akina 26.7.2006, 19:55
Хранимой процедурой сделать... нет среди групповых операций такой как конкатенация.

А насчет "ответить по адресу" - да кому оно нафиг надо? 

Автор: skyboy 26.7.2006, 21:05
в MySQL есть необходимая функция: group_concat. меняй СУБД  smile 
А твои строки вполне можно объединить в 
1 вноива
2
3 ргейсе
т.к. у тебя нет заданного порядка следования.  

Автор: shtril 26.7.2006, 22:06
сделать можно только СЕЛЕКТом, причем я подозреваю, что алгоритм накатан, т.к. задача считается средней сложности 

Автор: Akina 27.7.2006, 13:31
Составление в данном случае хранимки мне кажется задачей низкой сложности. А обращение к ней - СЕЛЕКТом, как ты и просишь.

А вот как ты будешь выкручиваться из того о чем говорит skyboy, я себе слабо представляю... разве что окажется что можно использовать не указанный тобой в описании задачи индекс. 

Автор: shtril 27.7.2006, 14:24
условия задачи таковы
только СЕЛЕКТ
можно СЕЛЕКТ внутри СЕЛЕКТА внутри Селекта.....
столбцы можно добавить скоко хочешь
номер по порядку, время занесения,....... Кстати, для специалистов....
Я знаю, что один челевек написал этот Селект за 40 сек и система признала запрос правильным
я думаю что алгоритм накатан Жалко что его решение я смогу оценить, если решу сам 

Автор: skyboy 27.7.2006, 14:46
Цитата(shtril @  27.7.2006,  14:24 Найти цитируемый пост)
можно СЕЛЕКТ внутри СЕЛЕКТА внутри Селекта.....

количество "слогов" ведь неограничено? как можно при помощи ограниченного количества вложенных запросов и/или join'ов выбрать потенциально неограниченное количество полей?
Цитата(shtril @  27.7.2006,  14:24 Найти цитируемый пост)
Я знаю, что один челевек написал этот Селект за 40 сек

какой это "этот Селект"? 
зы Я за 2 секунды набираю "SELECT * FROM test" - ни разу не было сообщения об ошибке  smile 
 

Автор: shtril 27.7.2006, 18:10
а там есть ограничение 
задача звУчит так(приблизительно)
 есть товар  1 столбец(номер товара)
есть комплектующие -второй столбец(тоже номер)

вывести номер товара, номера комплектующих(через запятую)
ограничится первыми 80 комлектующими
45  3,45,67,90
32  5,45,90,234
грустно так
Где спецы по SQL? 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)