(Delphi SQL) inkrementacja

0

Mam taki mały dylemat jak rozwiązać problem, mam TABELE a w niej np 6 elementów
A,B,C,D,E,F. A to standartowo id B to nr który ma być zwiększany o jeden ale jest uzależniony od C,
w C mamy 4 stałe elementy do wyboru, ja teraz wybieram z C pierwszy element to B jest inkrementowane czyli elementy są od 1,2,3,4,5 numerowane ale teraz wybieram z C drugi element to B ma być inkrementowane od 1 i dalej, jak wrócę do wyboru C pierwszego elementu to ma kontynułować już wcześniej zaczętą inkrementacje.

0

że tak nieśmiało zapytam - co???
Podaje się strukturę tabeli a nie A, B, C, ... oraz przykładowe dane. Następnie co chcesz zrobić i co powinno się zmienić

0

tabele wygląda nastepująco

id
nr
nick
nazwa książki,czasopisma
data nabycia
czy przeczytano

chodzi mi o to że jak wybieram nick(pierwszy) to w polu nr zachodzi inkrementacja od 1 i dalej, potem zmieniam nick(drugi) w polu nr inkrementacja zaczyna sie też od 1 i dalej, jak wracam do nick(pierwszy) to inkrementacja w polu nr idzie od ostatniego+1 przypisanego przez nick(pierwszy) i tak dalej

0

na jednej tabelce tego nie zrobisz - musisz dodać tabelkę

Numery
nick
numer

i wywalić z tamtej nr.

Następnie piszesz trigera na update i w nim robisz mniej więcej coś takiego

update numery set numer = numer + 1 where nick = :new.nick

wcześniej musisz jeszcze sprawdzić, czy taki nick jest już w numery i jak nie to go dodać z wartością nr = 0

0

tak ma wygladać przykładowy rekord

id nr nick nazwa data naby czy przeczytano
1 1 toloo enter 2009-12-22 t
2 2 toloo bajtek 2000-10-10 t
3 3 toloo enter 2009-08-10 n
4 1 maniek chip 2009-08-11 t
5 2 maniek enter 2000-10-10 t
6 4 toloo chip 2005-02-20 t
7 1 zyzio chip 2000-01-04 n
itd

i chodzi mi aby pole nr inkrementowało się

0

poczytaj w TSQL o funkcjach (od 2005)

PARTITION BY ... </CODE>
a jesli nie musi to byc inkrementowane w ramach nick'a to mozna tam dac `IDENTITY(1,1) `

1 użytkowników online, w tym zalogowanych: 0, gości: 1