|
|
|
| Подскажите пожайлуста, как мне в поле счётчик опрелить номера запичей которые были удалены? (1,2,3,5) например: 4. | |
|
| |
|
|
|
| а не проще програмно
вернее только програмно, т.к. ему нужно выводить записи существующие а он взять их нигде не может
разве что создавать таблу копия той что сравниваем загонять туда кол-во записей = максимальному значению счетчика испытуемой, и тогда получится left join where is null | |
|
| |
|
|
|
| может как то так?
SELECT d.id, d_1.id,nz(d_1.id-d.id,d.id+1) as diff
FROM d LEFT JOIN d AS d_1 ON d.id = d_1.id-1;
|
d.id____d_1.id____diff
1____2____1
2____3____1
3________4
5____6____1
6________7
|
| |
|
| |
|
|
|
|
| я же написал - как то так ;))
з.ы. какое задание - такой и ответ , ыыыы | |
|
| |
|
|
|
| а можно подойти по другом - если нет каскадного удаления и в связаной по этому полю табле висят записи которые могут ссылаться на удаленное значение - вот их можно выловить left join | |
|
| |
|
|
|
| Узнать максимальное число счетчика
создать временную таблу с одним полем (числовым)
програмно забить это поле последовательными целыми числами
создать запрос на объединение (Union All) к имеющейся табле и временной табле
создать запрос к запросу на поиск неповторяющихся записей
все
временную таблу после грохнуть (или очистить) за не надобностью | |
|
| |
|
|
|
| ну примерно так :) подробно,чтобы понятна была как хороводы водить ы
1. создаем запрос, где пересекаем декартово одну и туже таблицу с ID
SELECT d1.id AS id1, d2.id AS id2
FROM d AS d1, d AS d2;
|
называем её "decart" ыыыы
2. создаем запрос на основе п.1 и называем его "decartun" уникальный патамушта! по ходу записей вроде будет больше чем, нам надо в выборку , но мы не боимся трудностей и в принципе можем ограничить это дело, но не будем!
SELECT [id1]+[id2] AS Выражение1
FROM decart
GROUP BY [id1]+[id2];
|
3. теперь такой запрос, который назовем "decartnn" и в котором пронумеруем по порядку все запси - они то у нас получились из предыдущего запроса уникальными, йо.
SELECT DCount("Выражение1","decartun","Выражение1<=" & CStr(decartun.Выражение1))*1 AS nn, decartun.Выражение1
FROM decartun;
|
4. финализируем пятничные изыскания
SELECT decartnn.nn, d.id
FROM decartnn LEFT JOIN d ON decartnn.nn = d.id;
|
результат, как грицца, на лице
nn__id
1___1
2___2
3___3
4___
5___5
6___
7___
8___8
9___9
10__
11__
12__
13__13
14__14
15__
16__
17__
18__
19__
20__
21__
22__
23__
24__
|
хороших выходных :) | |
|
| |