powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Действие, противоположное DISTINCT ...
9 сообщений из 9, страница 1 из 1
Действие, противоположное DISTINCT ...
    #32717346
Zioma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток!

Пишу одну програмулину. Маленькую. Сервера не хотелось использовать, решил данные держать в Аксэсе. Но тут возникла проблема:

допустим, есть таблица

Name Count
--------------------------
qqqqqqqqqq 2
wwwwwww 1
eeeeeeeeee 4
rrrrrrrrrrrrrrr 3

и т.д.

Выбрать данные из нее нужно таким образом, что бы Name повторялось столько раз, сколько указано в Count, то есть
qqqqqqqqqq
qqqqqqqqqq
wwwwwww
eeeeeeeeee
eeeeeeeeee
eeeeeeeeee
eeeeeeeeee
rrrrrrrrrrrrrrr
rrrrrrrrrrrrrrr
rrrrrrrrrrrrrrr

Сделать это нужно запросом.
Не поможете ???
...
Рейтинг: 0 / 0
Действие, противоположное DISTINCT ...
    #32717400
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
думаю что запросом этого сделать нельзя
...
Рейтинг: 0 / 0
Действие, противоположное DISTINCT ...
    #32717425
Zioma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лох Позорныйдумаю что запросом этого сделать нельзя
А как можно?
Использую Delphi 7 + ADO + Access 2003.
...
Рейтинг: 0 / 0
Действие, противоположное DISTINCT ...
    #32717437
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если значение 2-го поля разумно ограничено,
то создать таблицу N c одним полем n - целое, заполнить её числами от 1 до нужного и исполнить
SELECT T.a, N.n FROM T INNER JOIN N ON T.b >= N.n;
...
Рейтинг: 0 / 0
Действие, противоположное DISTINCT ...
    #32717543
Zioma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey ShЕсли значение 2-го поля разумно ограничено,
то создать таблицу N c одним полем n - целое, заполнить её числами от 1 до нужного и исполнить
SELECT T.a, N.n FROM T INNER JOIN N ON T.b >= N.n;

Палучилось.
Конечно это не универсал, но для моей задачи как раз подходит.
Большое спасибо!!!
...
Рейтинг: 0 / 0
Действие, противоположное DISTINCT ...
    #32717570
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторКонечно это не универсал
Универсал, и еще какой. С маленькой поправкой. Достаточно иметь таблицу с числами от 0 до 9
...
Рейтинг: 0 / 0
Действие, противоположное DISTINCT ...
    #32717578
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот такой запросик из короткой таблички от 0 до 9 сделает табличку с числами от 0 до 999 :)

SELECT [x].[n]*100+[y].[n]*10+[z].[n] AS n
FROM N AS X, N AS Y, N AS Z
ORDER BY [x].[n]*100+[y].[n]*10+[z].[n];
...
Рейтинг: 0 / 0
Действие, противоположное DISTINCT ...
    #32717909
aleks2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если сделать вспомогательную таблицу Nums из одной колонки и заполнить ее
Num
1
2
3
4
...
махN

то можно одним запросом

select Name
FROM table INNER JOIN Nums ON Num<=Count

---------
на форуме по MS-SQL некоторые умельцы предлагали вариант генерации Nums прямо в запросе...
...
Рейтинг: 0 / 0
Действие, противоположное DISTINCT ...
    #32718296
на форуме по MS-SQL некоторые умельцы предлагали вариант генерации Nums прямо в запросе...
если в той же таблице (tabla), к которой предполагается сделать запрос) есть записи (т.е. наличие NumS актуально) то масса способов. Например и так
Nums:
Select 100*n2.n+10*n1.n + n0.n

FROM [Select Top 1 0 As n From tabla
UNION ALL
Select TOP 1 1 As n From tabla
UNION ALL
Select TOP 1 2 As n From tabla
....
UNION ALL
Select TOP 1 9 As n From tabla]. AS n0,
[Select Top 1 0 As n From tabla
UNION ALL
Select TOP 1 1 As n From tabla
UNION ALL
Select TOP 1 2 As n From tabla
....
UNION ALL
Select TOP 1 9 As n From tabla]. AS n1,
[Select Top 1 0 As n From tabla
UNION ALL
....
UNION ALL
Select TOP 1 9 As n From tabla]. AS n2;
(с копи-пастом блоками это не так долго )
В кач-ве tabla можно взять и MSysObjects - тогда NumS будет сохраненным запросом (а не таблицей).
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Действие, противоположное DISTINCT ...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]