Страница: 1 |
Страница: 1 |
Вопрос: Запрос SQL: формирования строки из набора значений
Добавлено: 05.10.04 12:34
Автор вопроса: Barulya
Подскажите пожалуйста, как мне сформировать строку из набора нескольких значений возвращаемых запросом, т.е. запрос возвращает например значения:
01
02
03
04
05
как из этих значений вместо них возвратить строку 01,02,03,04,05 в этом же запросе?
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа:
Mihalыch
ICQ: 373-509-101
Вопросов: 56
Ответов: 330
Профиль | | #1
Добавлено: 05.10.04 13:29
А куда эти значения возвращяются?, в RecordSet, тогда можно так:
Dim str As String
RecordSet.MoveFirst
Do While Not RecordSet.EOF
str = str & rsPeople!FieldName & ","
RecordSet.MoveNext
loop
Хотя скорее всего я не совсем правильно понял вопрос...
Номер ответа: 2
Автор ответа:
Barulya
Вопросов: 29
Ответов: 55
Профиль | | #2
Добавлено: 05.10.04 14:15
В том-то и проблема, что это необходимо реализовать в самом запросе, в виду того, что программа может очень много раз выполнять запрос (в цикле) по количеству предыдущих результатов
Номер ответа: 3
Автор ответа:
crackoff
ICQ: 156165990
Вопросов: 12
Ответов: 229
Профиль | | #3
Добавлено: 05.10.04 15:37
-- в таблицу authors добавили дополнительное уникальное поле myindex
use pubs
declare @sp varchar(1000), @sp1 varchar(1000)
declare @count int, @i int
select @count=(select count(au_lname) from authors)
set @i=1
set @sp1='au'
set @sp=''
while @i<=@count
begin
set @sp=(select au_lname from authors where myindex=@i)
set @sp1=@sp1+' '+@sp
set @i=@i+1
end
select @sp1 as 'То что нам нужно'
Номер ответа: 4
Автор ответа:
metla
Вопросов: 0
Ответов: 2
Профиль | | #4
Добавлено: 07.10.04 19:27
Declare @CurStr varchar(1000)
Set @CurStr = '';
select @CurStr = @CurStr + ' ' + MyString from MyTable
select @CurStr
и все!!!
Номер ответа: 5
Автор ответа:
Barulya
Вопросов: 29
Ответов: 55
Профиль | | #5
Добавлено: 07.10.04 19:54
Расскажите пожалуйста мне чайнику, где это реализуется. Дело в том, что я использую базу Данных MSAccess, а подключаюсь к ней через ADODB.
Номер ответа: 6
Автор ответа:
metla
Вопросов: 0
Ответов: 2
Профиль | | #6
Добавлено: 08.10.04 09:53
Такие вещи реализуются в MS SQL Server, если ты имеешь дело с Access это не прокатит, тогда почему программно это не реализовать, сделать например вложеный цикл, если тебе надо как ты говоришь вызыват в цикле?
Номер ответа: 7
Автор ответа:
Barulya
Вопросов: 29
Ответов: 55
Профиль | | #7
Добавлено: 08.10.04 10:11
Да уж придется... Все равно спасибо за помощь...
Номер ответа: 8
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #8
Добавлено: 17.10.04 23:52
В строке SQL это описывается что-то похоже на:
TRANSFORM ... SELECT ... FROM ...
TRANSFORM Count(Архив.КодРаботника)
SELECT Предприятия.Название
FROM Предприятия INNER JOIN Архив
WHERE Year([ДатаПриема])=2000
GROUP BY Предприятия.Название
ORDER BY Предприятия.Название
В Access это называется Перекрестный запрос, читай лучше хелп к Access...