Database - dubletter skal bevares

Tags:    databaser

Hej

Kunne ikke rette antal point - så jeg gentager spørgsmålet

Jeg er igang med en Access(2003)database.

Der er et stort datagrundlag, som opdateres ugentligt, og der i findes dubletter. Og de skal bevares!
Jeg har lavet en nøgle (bestående af centrale felter), og i tilfælde af dubletter skal der tilføjes noget f.eks. 1 første gang og 2 næste gang osv.
Men hvordan tilføjer jeg det??
Jeg har udsøgt posterne, men kan ikke finde en variabel som kan tælles op med 1.

Autonummerering kan ikke bruges, da næste opdatering kan indeholde posterne fra ugen før, de skal derfor få samme nølge og dermed kunne soteres fra.

Håber jeg har gjort mig forståelig :roll:




4 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 5 karma
Sorter efter stemmer Sorter efter dato
Lad os antage, at du har en nøgle bestående af felt a,b og derudover har et felt c, som er unikt inden for den enkelte nøgle, kan du gøre noget ala

SELECT
a,
b,
c,
(SELECT COUNT(*)
FROM tabel t1
WHERE t1.a = t2.a
AND t1.b = t2.b
AND t1.c < t2.c
) AS copy_number
FROM tabel t2
ORDER BY a,b

eksempel:

select * from tabel;
A B C
- - -
1 2 3
1 2 4
1 3 1
1 3 4
1 4 2
1 2 5
6 rows fetched.


SELECT
a,
b,
c,
(SELECT COUNT(*)
FROM tabel t1
WHERE t1.a = t2.a
AND t1.b = t2.b
AND t1.c < t2.c
) AS copy_number
FROM tabel t2
ORDER BY a,b;
A B C COPY_NUMBER
- - - -----------
1 2 3 0
1 2 4 1
1 2 5 2
1 3 1 0
1 3 4 1
1 4 2 0
6 rows fetched.

Bemærk at den tæller fra 0.

Var det det, som du ville?



Det er vist et større problem du har der. Tror ikke det kan lade sig gøre i Access. Jeg ville skrive et program der gjorde det. Problemet er at tælle dem op løbende, da det kræver en viden om hvor mange du har været igennem og hvad deres nummer er - og det faktum at du skal bibevare den viden på tværs af transaktioner (til dagen efter)...

Jeg kan ikke lige se det løst med SQL, derfor ville jeg lave et program til det... det ville heller ikke være helt trivielt.



Nå, det var det jeg frygtede.

Desværre er min programmering temmelig rusten! :|

Jeg får data i Excel, kan det løses der?
evt. med VBA, måske et felt der indeholder et tal der tælles op når der er dubletter.





Hej

Kunne ikke rette antal point - så jeg gentager spørgsmålet

Jeg er igang med en Access(2003)database.

Der er et stort datagrundlag, som opdateres ugentligt, og der i findes dubletter. Og de skal bevares!
Jeg har lavet en nøgle (bestående af centrale felter), og i tilfælde af dubletter skal der tilføjes noget f.eks. 1 første gang og 2 næste gang osv.
Men hvordan tilføjer jeg det??
Jeg har udsøgt posterne, men kan ikke finde en variabel som kan tælles op med 1.

Autonummerering kan ikke bruges, da næste opdatering kan indeholde posterne fra ugen før, de skal derfor få samme nølge og dermed kunne soteres fra.

Håber jeg har gjort mig forståelig :roll:


Er det korrekt forstået, at du har en tabel med et antal felter, hvor nogle er nøgle felter og der i denne sammensatte nøgle er dubletter? Og at du vil have et ekstra tæller-felt, som angiver "kopi" nummer?

Altså noget i stil med:

a b c kopi
-------------
1 2 3 1
1 2 4 1
1 2 3 2

?




t