![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Добрый вечер. Есть неразрешимая для меня задача, прошу вашей помощи. Таблица в БД (Акцесс) содержит информацию о бланках строгой отчетности. Выглядит так:
Код:
Бланк1 VBA0123 - VBA0124 Бланк1 VBA0126 - VBA0127 Бланк2 VB0111 - VB0113 например a:= Бланк1 VBA0123 - VBA0124 b:= Бланк1 VBA0126 - VBA0127 c:= Бланк2 VB0111 - VB0113 p.s. номер не обязательно состоит из 3 букв и цифр. Последний раз редактировалось DOR, 11.04.2013 в 17:02. |
#2
|
||||
|
||||
![]() Через Group By можно.
Или двойным подселектом. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#3
|
|||
|
|||
![]() Помогите пожалуйста кодом на данном примере. Как я написал, мне это никогда не написать.
|
#4
|
|||
|
|||
![]() Ну, я бы попробовал так:
Код:
Конкатенация может сразу не пройти, тогда надо будет сделать view просто с min и max, а уже из нее простым селектом с конкатенацией. |
#5
|
||||
|
||||
![]() Можно же без вьюхи, чисто подселект сделать.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#6
|
|||
|
|||
![]() M.A.D.M.A.N., lmikle
Я понимаю что для Вас решение очевидно, но для меня это не разрешимо. Может быть кто нибудь может написать код под ключ, если не за спасибо, то умеренную плату (в ЛС). з.ы. Если сообщение не уместно в танной теме прошу перенести в работу. Спасибо. з.ы. Код:
|
#7
|
||||
|
||||
![]() Боюсь тут в лоб селектами не выйдет. И Min,Max тут как мертвому припарка. Тут скорее всего придется писать функцию возвращающую последний номер в последовательности начинающейся с заданного значения. (Во завернул
![]() Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#8
|
|||
|
|||
![]() Цитата:
По представленной схеме данных этот селект вернет ровно то, что ТС просит. Если это не так, то нужно более точное описание задачи. |
#9
|
||||
|
||||
![]() Предложеный вариант будет работать правильно только с непрерывной последовательностью, а у автора есть разрыв в ней и потому Min(), Max() не катят. Этот запрос вернет 2 строчки т.к. не учитывает разрыва, а нужно вернуть 3.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#10
|
|||
|
|||
![]() Это да. Тогда проще кодом сделать.
|
#11
|
|||
|
|||
![]() Цитата:
Номер состоит из серии (VBA) и номера (0001). VBA9999, это последний номер в "партии". Потом будет VBB0001 до VBB9999 и так далее. Соответственно договора с серией VBB будут следующей строкой. Но напрактике за 3 года не было еще случаев когда не хватало номера. Думал тема безнадежно потеряна. Последний раз редактировалось DOR, 12.04.2013 в 14:04. |