Avatar billede pkbech Juniormester
06. juni 2017 - 16:51 Der er 3 kommentarer og
2 løsninger

Find differancen i to tabeller (Access 2016)

Har to tabeller med samme type data (adresse tlfnr og note)

tabelA.vejnavn tabelA.husnr tabelA.tlfnr tabelA.note
tabelB.vejnavn tabelB.husnr tabelB.tlfnr tabelB.note

Vil gerne sammenline de to tabler og kun få differancerne hvor tlfnr eller note er ændret. Eller hvor adressen ikke er i en ene af tabeller.

Via Guiden til forspørgsel - find ikke relaterede poster kom jeg frem til følgende:

FROM Nyliste LEFT JOIN Gamleliste ON Nyliste.[husnr] = Gamleliste.[husnr]
WHERE (((Gamleliste.husnr) Is Null));

Men skal tilføje noget men ikke helt sikker på hvad og hvordan
Avatar billede martens Guru
06. juni 2017 - 22:23 #1
Jeg vil gøre det således :

SELECT tabel_A.vejnavn, tabel_A.husnr, tabel_b.tlfnr, tabel_b.note
FROM tabel_A, tabel_b
WHERE (((tabel_b.tlfnr)<>[tabel_A]![tlfnr])) OR (((tabel_b.note)<>[tabel_A]![note]));


mvh martens
Avatar billede martens Guru
06. juni 2017 - 22:25 #2
tabel_A er den gamle liste og tabel_B er den nye
Så kigges der efter forskelle mellem gammel liste og den nye i TLF  eller NOTE ;o)
Avatar billede terry Ekspert
07. juni 2017 - 10:54 #3
"Vil gerne sammenline de to tabler og kun få differancerne hvor tlfnr eller note er ændret. Eller hvor adressen ikke er i en ene af tabeller."

As far as I can see you cant do this in one SELECT, first you need to find records not existing in one table and then you need to find records not existing in the other table. Then you also need to find differences in data for the records which exist in both tables. You could make a query for each and then using a UNION query join them all together in one list.
Something like this.
SELECT tabelB.vejnavn, tabelB.husnr, "Missing from A" AS Comment
FROM tabelA RIGHT JOIN tabelB ON (tabelA.husnr = tabelB.husnr) AND (tabelA.vejnavn = tabelB.vejnavn)
WHERE (((tabelA.vejnavn) Is Null) AND ((tabelA.husnr) Is Null))
UNION
SELECT tabelA.vejnavn, tabelA.husnr, "Missing from B" AS Comment
FROM tabelA LEFT JOIN tabelB ON (tabelA.husnr = tabelB.husnr) AND (tabelA.vejnavn = tabelB.vejnavn)
WHERE (((tabelB.vejnavn) Is Null) AND ((tabelB.husnr) Is Null))
UNION
SELECT tabelA.vejnavn, tabelA.husnr, "Data Changed" AS Comment
FROM tabelA INNER JOIN tabelB ON (tabelA.husnr = tabelB.husnr) AND (tabelA.vejnavn = tabelB.vejnavn)
WHERE (((tabelA.tlfnr)<>[tabelB].[tlfnr])) OR (((tabelA.note)<>[tabelB].[note]))
Avatar billede pkbech Juniormester
07. juni 2017 - 20:45 #4
Mange tak for hjælpen fik løst problemet ved hjælp af jeres forslag og lidt redesign.
Avatar billede terry Ekspert
08. juni 2017 - 09:05 #5
selv tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester