Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
 Аватар для sietle
1 / 1 / 0
Регистрация: 17.04.2012
Сообщений: 39

разделение строк в запросе

03.10.2013, 17:38. Показов 2718. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток! Есть запрос, в нем часть объектов имеет совмещенные значения возрастов (поле Age_N, совмещенные значения разделены через знаки "+", "-", ","), необходимо разделить строки запроса на строки с одинарными возрастами, а в поле C_N_vozr значения должны быть разделены кратно количеству возрастов, например, для Северо-Марьинской структуры должны получиться 2 строки с возрастами J2 и K1 и C_N_vozr=22720,5 (45441/2) для каждой строки, для Чернявской структуры - соответственно 3 строки.
Миниатюры
разделение строк в запросе  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.10.2013, 17:38
Ответы с готовыми решениями:

Разделение, дублирование строк в запросе
Не очень разбираюсь в Sql запросах. Помогите. Имеется такая таблица в Access 2003: ...

Разделение строк на слова в Access2003
В моей базе Access-2003 имеются две таблицы - FRAZY и SLOVA. Первая заполнена короткими однострочными текстами, анекдотами, изречениями и...

разделение строк
Нужно разделить стринг в javascript и передать php для обработки. вот часть js файла: var searchVal =...

7
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
03.10.2013, 18:01
Наличия справочника возрастов (таковой наверняка есть) упростило бы разбор - в некоторых возрастах внутри есть пробел, но пробел есть и как символ, стоящий вместе с разделителями. А так непонятно, возрасты в первой строке "J2 " и " K1", или "J2" и "K1". И по картинке проверять работу запроса будет затруднительно, выложите таблицу.
2
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
03.10.2013, 18:26
В запросе можно произвести разделение по Age_N.
Запрос (для случая когда количество элементов в Age_N не более 10. Иначе надо вводить еще один Digits)
SQL
1
2
3
4
5
SELECT Код, Name_ob, Age_N, nstruct(Age_N,d.digit) AS AgeSeparate, Год, C3_N_izvi, 
    C3_N_vozr/(nstruct(Age_N,-1)+1) AS C3_vozr_division
FROM tbl, digits AS d
WHERE d.digit<=nstruct(Age_N,-1)
ORDER BY Код, nstruct(Age_N,d.digit)
Запрос Digits (автор Bonim)
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SELECT TOP 1 0 AS digit FROM Msysobjects
UNION ALL
SELECT TOP 1 1 FROM Msysobjects
UNION ALL 
SELECT TOP 1 2 FROM Msysobjects
UNION ALL
SELECT TOP 1 3 FROM Msysobjects
UNION ALL
SELECT TOP 1 4 FROM Msysobjects
UNION ALL
SELECT TOP 1 5 FROM Msysobjects
UNION ALL
SELECT TOP 1 6 FROM Msysobjects
UNION ALL
SELECT TOP 1 7 FROM Msysobjects
UNION ALL
SELECT TOP 1 8 FROM Msysobjects
UNION ALL 
SELECT TOP 1 9 FROM Msysobjects;
Публичная функция nstruct в общем модуле
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Public Function nstruct(agen, N)
'agen - вводимое поле таблицы
'N - номер элемента
    Dim p, s
    s = Replace(Replace(Replace(agen, "+", ","), "-", ","), " ", "")
    p = Split(s, ",")
    If N < 0 Then   'Если N меньше 0, то узнаем количество элементов
        nstruct = UBound(p)
        Exit Function
    End If
    If N > UBound(p) Then 'Если N больше размерности p, то выход
        nstruct = Null
        Exit Function
    End If
    nstruct = p(N)
End Function
Добавлю. Согласен с ltv_1953, справочники серьезно помогли бы вам в дальнейшем анализе
2
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
03.10.2013, 18:52
Не знаю, будет ли это критично, но пробелы, входящие в обозначение возраста, в такой процедуре пропадут ("C1 v", например, превратится в "C1v".
2
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
03.10.2013, 19:08
ltv_1953, замечание верное. Но лечится небольшим изменением реплейса
Visual Basic
1
2
?replace(Replace(Replace(Replace("c1 v + c1 prk", "+", ","), "-", ","), ", ", ",")," ,",",")
c1 v,c1 prk
1
 Аватар для sietle
1 / 1 / 0
Регистрация: 17.04.2012
Сообщений: 39
03.10.2013, 20:26  [ТС]
Ребят, спасибо! Прошло совсем немного времени, и уже столько ответов!
По очереди:справочник имеется - spr_Geol vozrast
Вопрос с пробелами совершенно некритичен
Теперь начну тормозить, заранее извиняюсь((( Запрос Digits создала, модуль nstruct тож, применить запрос с разделением не получилось. В-общем, прилагаю фрагмент бд, так, наверно, будет всем легче
Вложения
Тип файла: zip db1.zip (227.7 Кб, 7 просмотров)
0
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
03.10.2013, 20:53
sietle, вы жертвою пали в борьбе со столбцами подстановок в таблицах. Вам казалось, что в поле возраста, а там код возраста из справочника :-)

- исправил запрос qwr_Vozrast. Добавил в него поле Возраст из справочника.
- изменил имя модуля. Имя модуля не должно совпадать с именем процедуры из любого модуля

Смотрите запрос qDivisionAges.
Вложения
Тип файла: rar db1.rar (152.3 Кб, 25 просмотров)
1
 Аватар для sietle
1 / 1 / 0
Регистрация: 17.04.2012
Сообщений: 39
03.10.2013, 22:03  [ТС]
здорово! Выходит! (и входит ) mobile, большущее спасибо, вы меня спасли в самые кратчайшие сроки! ltv_1953, Bonim, спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.10.2013, 22:03
Помогаю со студенческими работами здесь

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

Разделение строк на части
C7-D5 поступает такая строка как мне ее разделить сначала по - а потом уже посимвольно. Пишу активно на C# но требуют С++ в C# это выглядит...

Посимвольное разделение строк
Добрый день Возникла проблема при разделении строк Вот код package test; import java.io.File; import...

Разделение строки на несколько строк
помогите разобрать, как именно работает данный предикат, нашев в gooogle, делаю работу лабораторную. Заранее спасибо. Он разделяет строку...

Разделение строки на массив строк
Всем привет! У меня такой вопрос: Имеется строка например: Общие параметры Модель AMD FX-6300 Год релиза 2012 Сокет AM3+ ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru