Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 17.11.2014
Сообщений: 77

Слияние полей из разных строк

05.12.2016, 14:54. Показов 1651. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! Возможно, тема избитая, но подскажите пожалуйста:

1. Почему во 2м Случае по Митину возникают повторы записей в запросе? см. рис + БД проба.
http://hiprog.com/index.php?op... &Itemid=35

2. Строка
Visual Basic
1
FamUnion = IIf (IsNull(FamUnion), Fam, FamUnion & (", " + Fam))
вызывает ошибку Type mismatch?
Миниатюры
Слияние полей из разных строк  
Вложения
Тип файла: 7z Проба.7z (14.7 Кб, 1 просмотров)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.12.2016, 14:54
Ответы с готовыми решениями:

Объединение полей из разных строк
Здравствуйте! Есть две таблицы со связью мн-мн (через соединительную), 1 таблица изобретения, вторая его авторы. Нужно чтобы в запросе...

Слияние полей из двух таблиц
Доброго времени суток. Имеем две таблицы: A с единственным полем C и B с единственным полем S В каждой из таблиц по одной записи. ...

Слияние двух полей в одно. Как?
Два поля 'Вася' и 'Пупкин'. Из них нужно получить одно поле 'Вася Пупкин'. Как?

7
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,937
Записей в блоге: 4
05.12.2016, 15:31
не уверена, так ли надо
SQL
1
2
3
4
5
6
7
SELECT Таблица1.Код, Таблица1.Номер,
 LAST(Таблица2.дата_1) AS last_data,
 LAST(UnionStr2([Номер],[КБ])) AS FamUnion
FROM Таблица1
 INNER JOIN Таблица2
   ON Таблица1.Код = Таблица2.Код_К
GROUP BY Таблица1.Код, Таблица1.Номер;
КодНомерlast_dataFamUnion
11205.12.201631, 30
41505.12.201630, 47

с повтором в КБ и LEFT JOIN
КодНомерlast_dataFamUnion
11205.12.201631, 30
213  
314  
41506.12.201630, 47, 30
516  
1
0 / 0 / 0
Регистрация: 17.11.2014
Сообщений: 77
05.12.2016, 18:46  [ТС]
Цитата Сообщение от shanemac51 Посмотреть сообщение
так ли надо
Поле FamUnion имеет две разных даты, т.е. должно получится вот так:
12 06.09.15 31
12 05.12.16 30
13
14
15 05.12.16 30, 47
16
Пробовал вместо last поставить First, получается в случае с номером 12 как надо, но при этом № 15 показывает только одну запись 30.

Добавлено через 6 минут
Цитата Сообщение от shanemac51 Посмотреть сообщение
с повтором в КБ и LEFT JOIN
при таком повторе №15 повторяет запись "30" два раза, а №12 показывает только последнюю запись даты!
Но как этого избежать?
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,937
Записей в блоге: 4
05.12.2016, 19:29
Лучший ответ Сообщение было отмечено VitalijU как решение

Решение

гашение дубля КД
SQL
1
2
3
4
5
6
7
SELECT Таблица1.Номер,
 Таблица2.дата_1,
 LAST(UnionStr2(Таблица1.Номер & "`" & Таблица2.дата_1,[КБ])) AS FamUnion
FROM Таблица1
  LEFT JOIN Таблица2
   ON Таблица1.Код = Таблица2.Код_К
GROUP BY Таблица1.Номер, Таблица2.дата_1;
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Public Function UnionStr2(Optional ID, Optional Fam)
Static IDOld, FamUnion
If IsMissing(ID) Then
IDOld = Empty
Exit Function
End If
If IDOld <> ID Then
IDOld = ID
FamUnion = Null
End If
If InStr("," & FamUnion & ",", "," & Fam & ",") = 0 Then
FamUnion = (FamUnion + ", ") & Fam
'FamUnion = IIf(IsNull(FamUnion), Fam, FamUnion & (", " + Fam))
End If
UnionStr2 = FamUnion
End Function
Номердата_1FamUnion
1206.09.201531
1205.12.201630
13  
14  
1505.12.201630, 47
16  
1
0 / 0 / 0
Регистрация: 17.11.2014
Сообщений: 77
06.12.2016, 09:43  [ТС]
Цитата Сообщение от shanemac51 Посмотреть сообщение
гашение дубля КД
Добрый день! Спасибо за помощь shanemac51!
Появилась другая проблема!
При назначении условия отбора [Введите номер], первый раз отрабатывает отлично!
При повторном запуске запроса (ввожу №15), если запускать запрос несколько раз, появляются повторы!
Вложения
Тип файла: 7z Проба.7z (18.1 Кб, 10 просмотров)
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,937
Записей в блоге: 4
06.12.2016, 09:55
на один номер эта функция не работает ---так как сохранено значение STATIC переменной
также, если возвращаемый список длиннее 255 символов --он будет обрезан до 255симв.
1
0 / 0 / 0
Регистрация: 17.11.2014
Сообщений: 77
06.12.2016, 13:51  [ТС]
Цитата Сообщение от shanemac51 Посмотреть сообщение
на один номер эта функция не работает
Я понимаю, что переменная статическая, но значения при первом выполнении запроса правильные!
Как такое может быть?
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,937
Записей в блоге: 4
06.12.2016, 13:59
Цитата Сообщение от VitalijU Посмотреть сообщение
при первом выполнении запроса правильные!
при первом оно просто не присвоено, если выборка пустая --оно тоже не переприсваивается
так что я вижу только вариант PUBLIC и зануление перед вызовом запроса из кода формы
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.12.2016, 13:59
Помогаю со студенческими работами здесь

Выборка и объединение из 2 разных таблиц и 2 разных полей
Подскажите, пожалуйста, как составить запрос. Мне необходимо из 2 таблиц выбрать одинаковые значения полей userid и fuserid. SELECT...

Слияние строк.
Помогите пожалуйста реализовать задачу.Дано 2 строки ,реализовать функцию с помощью указателей которая копирует вторую строку в начало...

Слияние строк
У меня вот так: https://www.cyberforum.ru/attachment.php?attachmentid=858830&amp;stc=1&amp;d=1502707998 Нужно сделать вот так:...

Слияние строк
Разработать программу для упрощения работы с путем (Path) к файлу в файловой системе. Привязку к реальному диску делать необязательно....

Слияние строк
привет есть строка которую нельзя изменять. string def = &quot;abcca&quot;; нужно поочереди заменять буквы в исходнике. Вопрос как мне сделать...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru