|
|
|
Действие, противоположное DISTINCT ...
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток! Пишу одну програмулину. Маленькую. Сервера не хотелось использовать, решил данные держать в Аксэсе. Но тут возникла проблема: допустим, есть таблица Name Count -------------------------- qqqqqqqqqq 2 wwwwwww 1 eeeeeeeeee 4 rrrrrrrrrrrrrrr 3 и т.д. Выбрать данные из нее нужно таким образом, что бы Name повторялось столько раз, сколько указано в Count, то есть qqqqqqqqqq qqqqqqqqqq wwwwwww eeeeeeeeee eeeeeeeeee eeeeeeeeee eeeeeeeeee rrrrrrrrrrrrrrr rrrrrrrrrrrrrrr rrrrrrrrrrrrrrr Сделать это нужно запросом. Не поможете ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2004, 17:26:31 |
|
||
|
Действие, противоположное DISTINCT ...
|
|||
|---|---|---|---|
|
#18+
думаю что запросом этого сделать нельзя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2004, 17:40:39 |
|
||
|
Действие, противоположное DISTINCT ...
|
|||
|---|---|---|---|
|
#18+
Лох Позорныйдумаю что запросом этого сделать нельзя А как можно? Использую Delphi 7 + ADO + Access 2003. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2004, 17:47:03 |
|
||
|
Действие, противоположное DISTINCT ...
|
|||
|---|---|---|---|
|
#18+
Если значение 2-го поля разумно ограничено, то создать таблицу N c одним полем n - целое, заполнить её числами от 1 до нужного и исполнить SELECT T.a, N.n FROM T INNER JOIN N ON T.b >= N.n; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2004, 17:50:16 |
|
||
|
Действие, противоположное DISTINCT ...
|
|||
|---|---|---|---|
|
#18+
Alexey ShЕсли значение 2-го поля разумно ограничено, то создать таблицу N c одним полем n - целое, заполнить её числами от 1 до нужного и исполнить SELECT T.a, N.n FROM T INNER JOIN N ON T.b >= N.n; Палучилось. Конечно это не универсал, но для моей задачи как раз подходит. Большое спасибо!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2004, 18:23:46 |
|
||
|
Действие, противоположное DISTINCT ...
|
|||
|---|---|---|---|
|
#18+
авторКонечно это не универсал Универсал, и еще какой. С маленькой поправкой. Достаточно иметь таблицу с числами от 0 до 9 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2004, 18:32:26 |
|
||
|
Действие, противоположное DISTINCT ...
|
|||
|---|---|---|---|
|
#18+
А вот такой запросик из короткой таблички от 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]; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2004, 18:34:33 |
|
||
|
Действие, противоположное DISTINCT ...
|
|||
|---|---|---|---|
|
#18+
Если сделать вспомогательную таблицу Nums из одной колонки и заполнить ее Num 1 2 3 4 ... махN то можно одним запросом select Name FROM table INNER JOIN Nums ON Num<=Count --------- на форуме по MS-SQL некоторые умельцы предлагали вариант генерации Nums прямо в запросе... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2004, 06:32:32 |
|
||
|
Действие, противоположное DISTINCT ...
|
|||
|---|---|---|---|
|
#18+
на форуме по 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 будет сохраненным запросом (а не таблицей). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2004, 11:28:56 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32717425&tid=1671392]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
161ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 429ms |

| 0 / 0 |
