Имя: Пароль:
IT
 
sql- запрос: вернуть все строки как одну
0 грязный
 
08.02.10
08:26
(select id from table) - возвращает пять строк:
1
2
3
4
5
как вместо пяти получить одну строку:
1,2,3,4,5

?
дело в том что этот запрос используется как подзапрос. На каждую строку основного запроса он возвращает 0...5 строк
1 Егор Сергеевич
 
08.02.10
08:34
И как в дальнейшем будет использоваться данное поле?
2 Ненавижу 1С
 
гуру
08.02.10
08:34
(0) а в чем смысл общей задачи?
3 VitGun
 
08.02.10
08:37
select something from anytable where anytable.fid in (select id from table)

может так?
4 orefkov
 
08.02.10
08:52
В sqlite есть group_concat для этого, а как у больших - не знаю.
5 Skom
 
08.02.10
08:57
в (3) ведь уже все верно ответили
6 orefkov
 
08.02.10
09:06
(5)
Совершенно не вижу в (3) ответа на (0)
7 Skom
 
08.02.10
09:20
(6)
коли эта строка должна быть результатом выполнения подзапроса, то она будет фигурировать в условиях...
и видимо он хочет написать
что
ЗначениеПоУсловию В (<результатподзапроса>)

select something from anytable where anytable.fid in (select id from table)

так ведь тут то же самое

тока вместо
anytable.fid in (1,2,3,4,5)
будет вот это
anytable.fid in (select id from table)
8 orefkov
 
08.02.10
09:24
(7) Эт ты телепатируешь. Возможно верно угадал.
А вопрос в (0) - как все строки сложить в одну.
Вот например, запрос, возращающий в 1С 7.7 строку с расшифровкой остатков по товару по складам:

   запрОстатки.Подставлять("ДатаТА", НачМесяца(ПолучитьДатуТА()));
   запрОстатки.Подготовить("
   |select
   |    group_concat(rtrim(Склады.descr) || ': ' || Остатки.Кол, '; ') [Остаток]
   |from
   |(select
   |    Склад,
   |    sum(Остаток) Кол
   |from РегистрИтоги_Товары Итоги
   |where period = :ДатаТА and Товар = @goods
   |group by Склад) Остатки
   |left join Справочник_МестаХранения Склады on Остатки.Склад = Склады.id
   |");

Сразу выдает одну строку:
"Склад 5: 10; Склад 8: 15; Витрина: 2; "
9 Skom
 
08.02.10
09:27
(8) ну так автор бы еще уточнил что ему надо...

а то прям как наши бухгалтера...просят отчет
за период по остаткам а получается что им надо было обороты еще и в разрезе каждого дня

ну это я образно
10 orefkov
 
08.02.10
09:33
(9)
Эт фигня. Вот у нас пока трабла дойдет от низов до начальства - такой испорченный телефон получается... У тетки в экселе названия товаров в ячейку не влазили, так до нас дошло, что "на новых весах не все товары печатаются на этикетке". Пока обратно по цепочке до этой тетки не дошли, так и не разобрались.
11 Skom
 
08.02.10
09:40
да уж...
12 Жан Пердежон
 
08.02.10
11:33
в стандарте - никак, перебирай результат запроса
13 ATI
 
08.02.10
11:51
FOR XML PATH('')), ' ', ',')

например вот

http://skahin.blogspot.com/2009/12/for-xml-path.html
14 грязный
 
08.02.10
15:51
Есть таблица "задача" и таблица "исполнитель". У одной задачи переменное число исполнителей. Нужен запрос который на выходе выдаст таблицу в две колонки: 1) Название задачи 2) Список исполнителей

Всё это в postgres
15 also
 
08.02.10
15:55
(14) да с джойнь табличке и все )
16 Rabbit
 
08.02.10
16:16
В постгресе не силён. Если нет готовой функции - написать свой агрегатор при помощи CREATE AGGREGATE. (http://www.postgresql.org/docs/8.0/interactive/sql-createaggregate.html)
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.