/ / Przyrost wartości, gdy pole jest takie samo - sql, ms-access, access-vba

Przyrost wartości, gdy pole jest takie samo - sql, ms-access, access-vba

Po pierwsze, przepraszam za niejednoznaczny tytuł. Oto mój problem: Używam Access i mam ten stół:

+--------+-----------+
| PARENT | CHILD     |
+--------+-----------+
| JOHN   | TANIA     |
| JOHN   | ROBERT    |
| JOHN   | APRIL     |
| HELEN  | TOM       |
| HELEN  | GABRIELLE |
+--------+-----------+

I chciałbym dodać taką kolumnę z zapytaniami lub kodem VBA:

+--------+-----------+---------+
| PARENT | CHILD     | LIST    |
+--------+-----------+---------+
| JOHN   | TANIA     | CHILD 1 |
| JOHN   | ROBERT    | CHILD 2 |
| JOHN   | APRIL     | CHILD 3 |
| HELEN  | TOM       | CHILD 1 |
| HELEN  | GABRIELLE | CHILD 2 |
+--------+-----------+---------+

Chcę to zrobić, ponieważ na końcu chcę uruchomić kwerendę krzyżową. Nie mam tylko tej ostatniej kolumny, aby utworzyć to zapytanie.

  1. Próbowałem zrobić to w zestawie rekordów, ale moja baza danych zaczęła wzdęty po kilku rst.update (mam 700k + wiersze)

  2. Stworzyłem tabelę tymczasową i użyłem zapytań UPDATE, ale zajmuje to po prostu zbyt dużo czasu.

Myślę, że może istnieć kod SQL, który zrobiłby to, czego potrzebuję, ale po prostu nie mogę tego zrozumieć, mam nadzieję, że mógłbyś mi pomóc, dzięki :)

Odpowiedzi:

2 dla odpowiedzi № 1

Możesz zrobić coś takiego jak poniżej, ale byłoby znacznie lepiej z niektórymi identyfikatorami:

SELECT Parent.PARENT,
Parent.CHILD,
(SELECT Count(*)
FROM Parent p
WHERE p.Parent=Parent.Parent
AND p.Child<=Parent.Child) AS ChildNo
FROM Parent
ORDER BY Parent.PARENT, Parent.CHILD;

Rodzic to nazwa stołu.

wynik zapytania