Форум: "Базы";
Текущий архив: 2011.10.30;
Скачать: [xml.tar.bz2];
ВнизНесколько строк в одну (*.mdb) Найти похожие ветки
← →
Дмитрий С © (2010-02-03 05:18) [0]Есть таблица:
id name
1 Алексей
2 Дмитрий
3 Виктор
4 Иван
Нужно составить запрос который, для всей данной таблицы вернет одно значение:
"Алексей/Дмитрий/Виктор/Иван"
Обработать запрос в программе нельзя, т.к. ее исходников нет, изменить можно только сам запрос.
← →
Дмитрий С © (2010-02-03 06:19) [1]На ум приходит примерно такой вариант:
SELECT TOP 1 [t1].[name]
+Nz((SELECT TOP 1 "/"+[t2].[name]
+Nz((SELECT TOP 1 "/"+[t3].[name]
+Nz((SELECT TOP 1 "/"+[t4].[name]
+Nz((SELECT TOP 1 "/"+[t5].[name]
+Nz((SELECT TOP 1 "/"+[t6].[name]
+Nz((SELECT TOP 1 "/"+[t7].[name]
FROM [test] AS [t7] WHERE [t7].[id]<[t6].[id] ORDER BY [t7].[id] DESC))
FROM [test] AS [t6] WHERE [t6].[id]<[t5].[id] ORDER BY [t6].[id] DESC))
FROM [test] AS [t5] WHERE [t5].[id]<[t4].[id] ORDER BY [t5].[id] DESC))
FROM [test] AS [t4] WHERE [t4].[id]<[t3].[id] ORDER BY [t4].[id] DESC))
FROM [test] AS [t3] WHERE [t3].[id]<[t2].[id] ORDER BY [t3].[id] DESC))
FROM [test] AS [t2] WHERE [t2].[id]<[t1].[id] ORDER BY [t2].[id] DESC))
FROM
[test] AS [t1]
ORDER BY [t1].[id] DESC
Nz- возвращает пустую строку, если аргумент null.
Но хочется более изящного решения
← →
Кщд (2010-02-03 07:51) [2]http://allenbrowne.com/func-concat.html
http://www.databasejournal.com/features/msaccess/article.php/2247531/Concatenate-Column-Values-from-Multiple-Rows-into-a-Single-Column-with-Access.htm
← →
Дмитрий С © (2010-02-03 08:16) [3]
> Кщд (03.02.10 07:51) [2]
Понятно. А разве можно использовать макросы, если подключаешься к базе через ADO ?
+ Желательно *.mdb не изменять.
← →
Виталий Панасенко(дом) (2010-02-03 10:41) [4]iif используй для проверки null
← →
Дмитрий С © (2010-02-03 10:53) [5]
> Виталий Панасенко(дом) (03.02.10 10:41) [4]
В нем два раза выражение указывать нужно
← →
Виталий Панасенко(дом) (2010-02-03 16:51) [6]и что? зато работает
← →
Дмитрий С © (2010-02-04 05:20) [7]
> Виталий Панасенко(дом) (03.02.10 16:51) [6]
Вопрос не в этом. Вопрос в объединении нескольких записей в одну строку одним запросом.
Сопутствующий вопрос: Есть в Access-овой базе аналог LIMIT из MySQL ? Чтобы можно было задать количество записей и задать с какой начинать.
← →
Anatoly Podgoretsky © (2010-02-04 08:53) [8]> Дмитрий С (04.02.2010 05:20:07) [7]
Легче перечислить те базы, где есть LIMIT, чем те где его нет.
В Акцесс есть только стандартный TOP
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2011.10.30;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.004 c