Jag har en Access databas med två tabeller, den databasen är kopplad mot en webbsida
där jag gör en sökning, resultatet redovisas på en annan webbsida.
SELECT DISTINCT x.Nr, x.Till, x.Forb, x.Fabr, x.Typ, y.adress, y.mac, y.Anm
FROM tblRB AS x, tblMac AS y
WHERE (((y.adress) Like 'Grans*') AND y.mac IS NOT NULL);
Den här frågan fungerar nästan
Den ger bara för många poster i svaret, ca 64000 istället för 2000
Varför?
Till detta skulle jag vilja få till att jag kan använda mig av LIKE
men ingen vits ännu då frågan inte fungerar korrekt
Jag har två tabeller
tblRB
tblMac
I båda har jag gemensamt fält anm
jag vill med antingen en adress eller en anm eller något annat fält matcha
och samtidigt ta fram en macadress.
Detta svar kommer sedan kunna att generera en fil
den kommer sedan laddas upp på en ftp server
där den kommer hämtas automatiskt av en teknisk utrustning.
Så tanken är att man söker, får en matchning och klickar på en rad av resultaten
detta genererar den fil som kommer laddas upp.
Allt detta fungerar. Men inte sökningen i databasen.
10-100
10-10
10-1
Om jag skriver in 10-1
då vill jag få matchning på alla de ovan exemplen.
Om det finns en macadr på den specifika anm då vill jag se resultatet
samtidigt vill jag inte se den anm som inte har macadress.
Eller snarare de som matchas men inte har en macadress, skall då skrivas ut N/A på webbsidan.
Så ifall det blir en rad eller 30 rader vill jag se dem alla
Anledningen till att du får för många poster är att du inte kopplar samman tabellerna med ett villkor. Det som nu händer är att tabellerna cross joinas vilket innebär att alla möjliga radkombinationer skapas mellan tabellerna (och med "alla möjliga" så menar jag verkligen ALLA möjliga).
Så det du vill göra är följande:
SELECT
x.Nr,
x.Till,
x.Forb,
x.Fabr,
x.Typ,
y.adress,
y.mac,
y.Anm
FROM
tblRB AS x INNER JOIN tblMac AS y
ON
x.anm = y.anm
WHERE
y.adress Like 'Grans*' AND
y.mac IS NOT NULL
Anledningen till att du får för många poster är att du inte kopplar samman tabellerna med ett villkor. Det som nu händer är att tabellerna cross joinas vilket innebär att alla möjliga radkombinationer skapas mellan tabellerna (och med "alla möjliga" så menar jag verkligen ALLA möjliga).
Så det du vill göra är följande:
SELECT
x.Nr,
x.Till,
x.Forb,
x.Fabr,
x.Typ,
y.adress,
y.mac,
y.Anm
FROM
tblRB AS x INNER JOIN tblMac AS y
ON
x.anm = y.anm
WHERE
y.adress Like 'Grans*' AND
y.mac IS NOT NULL
Jaha då förstår jag.
Det vilseleder ibland att man kan ha vissa fält i SELECT och koppla mot helt andra fält.
Tack för det snabba svaret.
Det fungerade klockrent.
Den blev snabb och svara, svarstiderna under 2 sek.
Härligt
Mvh
David
266 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e