Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Результаты запроса в строку  [new]
КД
Member

Откуда:
Сообщений: 959
Возможно ли с помощью SQL, не прибегая к коду, вывести в одну строку результаты запроса из разных записей? Известен порядок следования значений в разделе, но их количество может быть различным.

К сообщению приложен файл. Размер - 40Kb


Сообщение было отредактировано: 9 май 21, 23:41
9 май 21, 23:47    [22319971]     Ответить | Цитировать Сообщить модератору
 Re: Результаты запроса в строку  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5230
КД
Возможно ли с помощью SQL, не прибегая к коду,
нет
10 май 21, 05:16    [22319995]     Ответить | Цитировать Сообщить модератору
 Re: Результаты запроса в строку  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5230
КД, если интересует всё же результат (конкатенациястрок), то посмотри статью "Слияние полей из разных строк запроса."
10 май 21, 05:28    [22319997]     Ответить | Цитировать Сообщить модератору
 Re: Результаты запроса в строку  [new]
КД
Member

Откуда:
Сообщений: 959
Спасибо!
10 май 21, 14:11    [22320092]     Ответить | Цитировать Сообщить модератору
 Re: Результаты запроса в строку  [new]
КД
Member

Откуда:
Сообщений: 959
Панург,
вроде работает. но как-то непонятно. Сделал урезанную версию, оставив только нужное. Запрос11 выдает все правильно. А вот Запрос12 некоторые записи обрабатывает как надо, а некоторые - нет. Например, для источника 8 выдает одного автора, а не двух. Попробовал убавить количество записей в таблице SOURCES, оставив 30 - заработало. Разве это может зависеть от количества записей? Или я чего-то не понимаю?

К сообщению приложен файл (Поле запроса.rar - 123Kb) cкачать
10 май 21, 20:55    [22320177]     Ответить | Цитировать Сообщить модератору
 Re: Результаты запроса в строку  [new]
КД
Member

Откуда:
Сообщений: 959
Попробовал на функции ставить брейкпойнт. Полагал, что записи будут обрабатываться в том порядке, как они отсортированы в Запросе11 - по возрастанию idsSOURCE_ID... ан нет, начал с 709! Почему? Уже не знаю в какую сторону думать...
10 май 21, 23:15    [22320212]     Ответить | Цитировать Сообщить модератору
 Re: Результаты запроса в строку  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5230
КД
Запрос12 некоторые записи обрабатывает как надо, а некоторые - нет. Например, для источника 8 выдает одного автора, а не двух.
проистекает отсюда
КД
Полагал, что записи будут обрабатываться в том порядке, как они отсортированы в Запросе11 - по возрастанию idsSOURCE_ID... ан нет, начал с 709! Почему? Уже не знаю в какую сторону думать...
Потому-что нужно читать тщательнее
http://hiprog.com/index.php?option=com_content&task=view&id=334
Случай 3. Tab1 таблица или запрос. Предположений о сортированности по ID и о пустых фамилиях нет.
Предположение: нет повторяющихся пар: ID, Fam.

В этом случае необходима промежуточная сортировка Tab1 по ID.
...пропущено...
Замечание: в промежуточной сортировке используется предикат DISTINCT. Он превращает запрос Tab1Sort в статический. Без этого метод неработоспособен. Но этот же предикат удаляет повторяющиеся пары ID, Fam. Поэтому необходимо указанное выше предположение.
11 май 21, 05:25    [22320245]     Ответить | Цитировать Сообщить модератору
 Re: Результаты запроса в строку  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5230
КД, добавлю ещё следующее. Результирующая строка будет ограничена 255 символами. Так что аккуратней.
На большом количестве записей и в сложных запросах будет всё отчаянно тормозить. Выход - воспользоваться последним предложенным методом (Метод 3)
11 май 21, 05:30    [22320246]     Ответить | Цитировать Сообщить модератору
 Re: Результаты запроса в строку  [new]
Geizer1
Member

Откуда: Томск
Сообщений: 93
Я пользуюсь функцией ConcatRelated в приложенном примере.
Правда если делать агрегацию: сначала в одном, потом на его основе еще в одном и т.д. , то после 3-х вложений начинаются тормоза.
Работает корректно но, с ограничением результата в 255 символов. Но это ограничение самого Access, а не функции.

К сообщению приложен файл (MicrosoftAccessConcatenate.pdf - 78Kb) cкачать
11 май 21, 08:47    [22320254]     Ответить | Цитировать Сообщить модератору
 Re: Результаты запроса в строку  [new]
ПЕНСИОНЕРКА
Member

Откуда: Владимирская обл
Сообщений: 4755
КД,
C мемо справилась ценой 4-х запросов и рабочей таблицей, но не победила порядок , хотя в рабочей таблице порядок правильный 1,2,3,4,5,6

причем, если элементов 2-3 - формирует правильно
zkodztextzmemo
8Пяденицы (Lepidoptera, Geometridae) Тульской областиM 1 Антонова Е.М. 2 Большаков Л.В.
9Региональный кадастр пядениц Ивановской областиM 1 Антонова Е.М. 2 Тихомиров А.М.
149Список чешуекрылых (Macrolepidoptera) Ленинградской областиM 5 Прасолов В.Н. 1 Державец Ю.А. 2 Иванов А.И. 4 Мищенко О.А. 6 Синёв С.Ю. 3 Миронов В.Г.
840Насекомые в добыче ушана Plecotus auritus (L.) (Chiroptera: Vespertilionidae) в Центральной РоссииM 4 Устюгова С.В. 5 Борисенко А.В. 2 Жукова Д.В. 1 Ростовская М.С. 6 Свиридов А.В. 3 Илларионова А.Е.


конечно через код можно получить желаемое одним запросом + рабочая таблица

Сообщение было отредактировано: 11 май 21, 12:42
11 май 21, 12:48    [22320401]     Ответить | Цитировать Сообщить модератору
 Re: Результаты запроса в строку  [new]
ПЕНСИОНЕРКА
Member

Откуда: Владимирская обл
Сообщений: 4755
ПЕНСИОНЕРКА
конечно через код можно получить желаемое одним запросом

ввела дополнительное мемо-поле в основную таблицу и кодом получила 3 варианта группировки
1- по номерам
2- 1 номер, остальные по алфавиту
3- все по алфавиту
Номер источникаzmemo
91 Антонова Е.М.,2 Тихомиров А.М.
1491 Державец Ю.А.,2 Иванов А.И.,3 Миронов В.Г.,4 Мищенко О.А.,5 Прасолов В.Н.,6 Синёв С.Ю. ==== по номерам
9291 Ефимов Р.В.,2 Золотухин В.В.,3 Дёмин А.Г.,4 Кнушевицкая М.В. ==под редакцией 1
9591 Золотухин В.В.
9691 Nieukerken E.J., Mistchenko A.,Zolotuhin V.V.
9791 Пискунов В.И.,2 Аникин В.В.
1169 Корб С.К., Крюков И.В., Потанин Д.В., Сажнев А.С., Цылин А.А. ===алфавит
11791 Комаров Д.А.
11891 Золотухин В.В.,2 Комаров Д.А.
13791 Золотухин В.В.


Сообщение было отредактировано: 11 май 21, 15:40
11 май 21, 15:46    [22320513]     Ответить | Цитировать Сообщить модератору
 Re: Результаты запроса в строку  [new]
ПЕНСИОНЕРКА
Member

Откуда: Владимирская обл
Сообщений: 4755
ПЕНСИОНЕРКА
ПЕНСИОНЕРКА
конечно через код можно получить желаемое одним запросом

ввела дополнительное мемо-поле в основную таблицу и кодом получила 3 варианта группировки
1- по номерам
2- 1 номер, остальные по алфавиту
3- все по алфавиту
Номер источника,zmemo
9,1 Антонова Е.М.,2 Тихомиров А.М.
149,1 Державец Ю.А.,2 Иванов А.И.,3 Миронов В.Г.,4 Мищенко О.А.,5 Прасолов В.Н.,6 Синёв С.Ю. ==== по номерам
929,1 Ефимов Р.В.,2 Золотухин В.В.,3 Дёмин А.Г.,4 Кнушевицкая М.В. ==под редакцией 1
1169, Корб С.К., Крюков И.В., Потанин Д.В., Сажнев А.С., Цылин А.А. ===алфавит


Сообщение было отредактировано: 11 май 21, 15:42
11 май 21, 15:50    [22320516]     Ответить | Цитировать Сообщить модератору
 Re: Результаты запроса в строку  [new]
ПЕНСИОНЕРКА
Member

Откуда: Владимирская обл
Сообщений: 4755
[quote ПЕНСИОНЕРКА#22320516][quote ПЕНСИОНЕРКА#22320513]пропущено...

ввела дополнительное мемо-поле в основную таблицу и кодом получила 3 варианта группировки
1- по номерам
2- 1 номер, остальные по алфавиту
3- все по алфавиту
Номер источника,zmemo
9,1 Антонова Е.М.,2 Тихомиров А.М.
149,1 Державец Ю.А.,2 Иванов А.И.,3 Миронов В.Г.,4 Мищенко О.А.,5 Прасолов В.Н.,6 Синёв С.Ю. ==== по номерам
929,1 Ефимов Р.В.,2 Золотухин В.В.,3 Дёмин А.Г.,4 Кнушевицкая М.В. ==под редакцией 1
1169, Корб С.К., Крюков И.В., Потанин Д.В., Сажнев А.С., Цылин А.А. ===алфавит


Сообщение было отредактировано: 11 май 21, 15:43
11 май 21, 15:51    [22320517]     Ответить | Цитировать Сообщить модератору
 Re: Результаты запроса в строку  [new]
ПЕНСИОНЕРКА
Member

Откуда: Владимирская обл
Сообщений: 4755
ПЕНСИОНЕРКА
ввела дополнительное мемо-поле в основную таблицу и кодом получила 3 варианта группировки

1- по номерам
2- 1 номер, остальные по алфавиту
3- все по алфавиту
Номер источникаzmemoпримечание
91 Антонова Е.М.,2 Тихомиров А.М.
1491 Державец Ю.А.,2 Иванов А.И.,3 Миронов В.Г.,4 Мищенко О.А.,5 Прасолов В.Н.,6 Синёв С.Ю. по номерам
9291 Ефимов Р.В., Золотухин В.В., Дёмин А.Г., Кнушевицкая М.В. под редакцией 1
1169 Корб С.К., Крюков И.В., Потанин Д.В., Сажнев А.С., Цылин А.А. алфавит


Сообщение было отредактировано: 11 май 21, 15:50
11 май 21, 15:52    [22320518]     Ответить | Цитировать Сообщить модератору
 Re: Результаты запроса в строку  [new]
КД
Member

Откуда:
Сообщений: 959
Всем спасибо за участие! Буду разбираться.
Могу сразу сказать, что притормаживание не очень критично, т.к. база однопользовательская и несетевая. Количество записей в таблице SOURCES вряд ли будет слишком большим.
Обрезание названия до 255 символов тоже роли не играет, их вполне достаточно (вкупе с другими атрибутами), чтобы понять какой это источник (конкретная статья, книга и т.д.).
11 май 21, 19:22    [22320618]     Ответить | Цитировать Сообщить модератору
 Re: Результаты запроса в строку  [new]
КД
Member

Откуда:
Сообщений: 959
Ну, в общем, получилось что хотел. Правда, если сделать так

К сообщению приложен файл. Размер - 86Kb
11 май 21, 22:25    [22320667]     Ответить | Цитировать Сообщить модератору
 Re: Результаты запроса в строку  [new]
КД
Member

Откуда:
Сообщений: 959
То результат выполнения Запроса2 выглядит следующим образом

К сообщению приложен файл. Размер - 84Kb
11 май 21, 22:26    [22320668]     Ответить | Цитировать Сообщить модератору
 Re: Результаты запроса в строку  [new]
КД
Member

Откуда:
Сообщений: 959
Пришлось добавить еще один запрос

К сообщению приложен файл. Размер - 98Kb
11 май 21, 22:27    [22320669]     Ответить | Цитировать Сообщить модератору
 Re: Результаты запроса в строку  [new]
КД
Member

Откуда:
Сообщений: 959
Но порядок авторов в некоторых записях неправильный...
11 май 21, 22:40    [22320671]     Ответить | Цитировать Сообщить модератору
 Re: Результаты запроса в строку  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5230
КД, для чего эти картинки QBE? Бессмысленные... Не умеешь вытащить текст запроса?
12 май 21, 04:47    [22320736]     Ответить | Цитировать Сообщить модератору
 Re: Результаты запроса в строку  [new]
ПЕНСИОНЕРКА
Member

Откуда: Владимирская обл
Сообщений: 4755
КД
Но порядок авторов в некоторых записях неправильный..

поэтому я и дошла до варианта
-дополнительное поле в SOURCES
-программный расчет(и порядок правильный и могут быть разные, по потребности)
12 май 21, 07:34    [22320740]     Ответить | Цитировать Сообщить модератору
 Re: Результаты запроса в строку  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 7350
А слабо просто объяснить какая задача стоит перед Вами
Сдается мне что все достаточно просто,но все сложности "растут" еще из схемы,но это можно определить конкретно зная какие данные Вы храните(которые набираются ручками и нет ли излишествующих) и что хотите получить на выходе (предназначение БД)
12 май 21, 13:29    [22320942]     Ответить | Цитировать Сообщить модератору
 Re: Результаты запроса в строку  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5230
sdku
А слабо просто объяснить какая задача стоит перед Вами
так ясно же что - источники информации, литература, публикации и авторы. Авторы должны быть в определённом порядке, а не как бог на душу положит. ИМХО.

БД, видимо, по насекомым (бабочкам)

Сообщение было отредактировано: 12 май 21, 17:51
12 май 21, 17:54    [22321133]     Ответить | Цитировать Сообщить модератору
 Re: Результаты запроса в строку  [new]
КД
Member

Откуда:
Сообщений: 959
Панург
так ясно же что - источники информации, литература, публикации и авторы. Авторы должны быть в определённом порядке, а не как бог на душу положит. ИМХО.

БД, видимо, по насекомым (бабочкам)
- в точку!

Конечно, могу и тексты запросов вытащить.
Я предполагал, что запросом эту задачу (источники с авторами в правильном порядке) будет проще решить. Теперь вижу, что, наверное, нет. Во многих случаях я пользовался ADO-рекордсетами, которые формировал так, как мне нужно. Возможно, что и здесь пойду проторенной дорогой :)
Другое меня стало смущать. Вот посмотрел на результат запроса - вроде правильно. Листаешь дальше, видишь, что нет-нет, да и ошибка проскакивает. А если она одна на тысячи записей? Да еще где-н. в конце? Немудрено и проглядеть. Задумался: как же гарантировать, что программа правильно срабатывает? Ведь запросы самые разнообразные, количество результатов тоже... Наверное, я золотую рыбку хочу :), но, может, существуют методики проверки, какие-то стандартные тесты? Где почитать?
12 май 21, 22:24    [22321240]     Ответить | Цитировать Сообщить модератору
 Re: Результаты запроса в строку  [new]
КД
Member

Откуда:
Сообщений: 959
sdku
А слабо просто объяснить какая задача стоит перед Вами
Сдается мне что все достаточно просто,но все сложности "растут" еще из схемы,но это можно определить конкретно зная какие данные Вы храните(которые набираются ручками и нет ли излишествующих) и что хотите получить на выходе (предназначение БД)

Собственно, Панург ответил за меня. Вынесенная задача (по источникам и авторам) - одна из немногих, для которых создавалась база. Если нужен кусок схемы, хранящий эти данные - могу выложить.
12 май 21, 22:28    [22321244]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft Access Ответить