Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ] > Код на шару!
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.04.2013, 21:21
DOR DOR вне форума
Начинающий
 
Регистрация: 14.01.2011
Сообщения: 171
Версия Delphi: 7
Репутация: 10
По умолчанию Диапазон номеров в одну строку

Добрый вечер. Есть неразрешимая для меня задача, прошу вашей помощи. Таблица в БД (Акцесс) содержит информацию о бланках строгой отчетности. Выглядит так:
Код:
ID      Num            Vid       Num_Reg
1      VBA0123       Бланк1        10
2      VBA0124       Бланк1        10
3      VBA0125       Бланк1        
4      VBA0126       Бланк1        10
5      VBA0127       Бланк1        10
6      VB0111        Бланк2        10
7      VB0112        Бланк2        10
8      VB0113        Бланк2        10
Дальше я делаю запрос на отбор всех строк где Num_Reg = 10. Нужно подготовить данные на вывод в Excel, в виде:
Бланк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  
Старый 04.04.2013, 21:22
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Через Group By можно.
Или двойным подселектом.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #3  
Старый 04.04.2013, 21:28
DOR DOR вне форума
Начинающий
 
Регистрация: 14.01.2011
Сообщения: 171
Версия Delphi: 7
Репутация: 10
По умолчанию

Помогите пожалуйста кодом на данном примере. Как я написал, мне это никогда не написать.
Ответить с цитированием
  #4  
Старый 04.04.2013, 23:34
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,048
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, я бы попробовал так:
Код:
select vid, min(Num) || ' - ' || max(Num)
from Table
where Num_Reg = 10
group by vid

Конкатенация может сразу не пройти, тогда надо будет сделать view просто с min и max, а уже из нее простым селектом с конкатенацией.
Ответить с цитированием
  #5  
Старый 05.04.2013, 08:24
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Можно же без вьюхи, чисто подселект сделать.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #6  
Старый 05.04.2013, 15:59
DOR DOR вне форума
Начинающий
 
Регистрация: 14.01.2011
Сообщения: 171
Версия Delphi: 7
Репутация: 10
По умолчанию

M.A.D.M.A.N., lmikle
Я понимаю что для Вас решение очевидно, но для меня это не разрешимо. Может быть кто нибудь может написать код под ключ, если не за спасибо, то умеренную плату (в ЛС).

з.ы. Если сообщение не уместно в танной теме прошу перенести в работу. Спасибо.

з.ы.
Код:
select vid, min(Num) || ' - ' || max(Num) 
from Table 
where Num_Reg = 10
group by vid 
Тут в промежуток попадет лишний номер. Теоретически.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 05:18.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter