Avatar billede kuusbrian Nybegynder
10. maj 2011 - 10:49 Der er 9 kommentarer og
1 løsning

Sammenlig 2 Tabeller/Forespørgelser i Access

Hejsa

Jeg har en database, hvor jeg gemmer en dato-kunde-mængde. jeg laver så 2 forespørgelser på henholdsvis 2 forskellige datoer.

Det jeg ved er at den ene dato er der mange flere kunde end den anden.

Det jeg så gerne vil er at sammenligne disse 2 datoer, for at kunne se hvilke kunder som ikke går igen 2 gange

kan man lave det på en nem måde
Avatar billede michael_stim Ekspert
10. maj 2011 - 11:00 #1
Noget á la:

SELECT * FROM tabel a WHERE a.kundeid NOT IN (SELECT b.kundeid FROM tabel b WHERE a.kundeid=b.kundeid AND a.dato=b.dato)
Avatar billede kuusbrian Nybegynder
10. maj 2011 - 11:40 #2
ok får det lige testet vender tilbage ;)
Avatar billede kuusbrian Nybegynder
11. maj 2011 - 09:31 #3
Hejsa igen..

Har prøvt den du skrev men kan ikke få det til virke ;) er lidt grøn i access.

Det jeg har er en Table der hedder Kunde_Data. Hvor jeg har følgende kolonner Produktions Døgn, Kunder Nummer, Kunde Navn, Mængde.

Jeg har så lavt 2 forspørgsel. Forespørgsel1 som trækker data fra 14.04.2011, og Forespørgsel3 som trækker fra den 05-05.2011 hvor dato,kunde navn,mængde kan ses.

Disse 2 forespørgelser skal så sammenlignes for at finde hvilke kunder der ikke går 2 gange, altså jeg skal se de kunder som ikke er tilstede på den første Forespørgsel1
Avatar billede Slettet bruger
11. maj 2011 - 11:38 #4
Forespørgsler af den type der retunerer tabelindhold (select forespørgsler) kan man opfatte som tabeler og dermed bygger videre på med nye forespørsler.

I sql betyder 'left join' at der medtages alle poster fra ventre side og de poster der passer fra højre side

Det bruges sådan til kun at få de poster fra venstre side som ikke har en joined record fra tabelen på højre side:

select * from Forespørgsel3 as f3 left join Forespørgsel1 as f1 on f3.[Kunder Nummer] = f1.[Kunder Nummer] where isnull(f1.[Kunder Nummer])

Du skriver du er grøn i access - hvis du hidtil har lavet forespørgsler i det den der 'todelte grafiske dims' ( qbe grid opfundet af IBM)  - så skift til sql visning ved højreklik på titellinien->vælg sql.
Avatar billede kuusbrian Nybegynder
11. maj 2011 - 12:38 #5
SELECT *
FROM Forespørgsel3 AS f3 LEFT JOIN Forespørgsel1 AS f1 ON f3.[Kunder Nummer]=f1.[Kunder Nummer]
WHERE isnull(f1.[Kunder Nummer]);

er sådan som jeg har sat det op, men den Forespørgsel som kommer frem er tom..har prøvt at vende den om med F1 som start i stedet, med stadig tom..

har trukket forespørgsel 1 og 3 og f1 har 5703 post og f3 har 5819 poster. så der de 116 poster der er til forskel jeg gerne vil se ;)
Avatar billede Slettet bruger
11. maj 2011 - 14:00 #6
ER der kunder i f3, som ikke findes i f1?

Er felt og tabelnavne det stavet rigtigt - du anvender mellemrum og national specifikke tegn - noget jeg ikke aner hvordan man håndterer.

Et generelt råd til fejlsøgning er 'split i atomer' og operere på enkeltdele og deres vekselvirkning på måder der kan konluderes entydigt på.
Avatar billede kuusbrian Nybegynder
11. maj 2011 - 14:12 #7
Ja der er kunder som ikke er i F1..så skal have de kunder frem der som er i f3, men ikke i f1.. det vil sige den kunde der går i igen i begge forespørgseler skal ikke vises, men de kunder som kun er i den ene...håber det giver mening ;)
Avatar billede kuusbrian Nybegynder
13. maj 2011 - 09:27 #8
Hejsa igen

Unaset hvordan jeg gør..så får jeg ikke noget frem i forespørgselen.. ;)

Er der en anden mulighed ?
Avatar billede kuusbrian Nybegynder
13. maj 2011 - 11:37 #9
Har fået det løst..så skal gi nogen point til brugerekspert.. kan ike huske hvordan  ;) og tak for hjælpen
Avatar billede Slettet bruger
14. maj 2011 - 18:25 #10
Godt for dig, at du fik det løst. Jeg aner heller ikke hvordan man gør det med point - ved blot at det er muligt at give mig point når jeg vælger indlægstypen svar. Det er, som spørger,  vigtigt at lukke spørgsmål med point til en svarer eller en selv - ellers risikeres afsporing af emnet ved næste spørgsmål.
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
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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