webForumDet fria alternativet

Jämföra ojämnt antal poster i två tabeller

Databaser & SQL

4 svar · 331 visningar · startad av web00132

Medlem sedan maj 2001797 inlägg
Frågan#1

Har ett litet problem med en Accessdatabas. Jag vill föra över data från en post 'fpris' i tabellen 'affarspriser' till posten 'fpris' i tabellen 'produkt'. Så här ser det ut:

[B]produkt[/B]		[B]affarspriser[/B]

fpris		fpris
produktID	produktID

Problemet är att i tabellen 'affarspriser' finns sammanlagt 1055 rader och i tabellen 'produkt' endast 1005 rader. Följdaktligen finns det vissa poster i tabellen 'affarspriser' som har samma produktID, det är inte unikt alltså. Dessutom så verkar det finnas fler produkter inlagda i tabellen 'produkt' och därmed alltså fler produktID:n i den tabellen än i 'affarspriser'.

Det jag vill göra är att dels få fram vilka poster i tabellen affarspriser det finns dubletter av, och dels ta fram vilka poster (produktID:n) som finns i tabellen 'produkt' men ej i 'affarspriser'. Så, hur göra? :OO

Medlem sedan juni 200032 967 inlägg
#2

1:

SELECT * FROM affarspriser 
WHERE produktID IN (
     SELECT produktID, count(*) 
     FROM affarspriser
     GROUP BY produktID
     HAVING COUNT(*) > 1)
ORDER BY produktID

2:

SELECT * FROM produkt 
WHERE produktID NOT IN 
     (SELECT produktID FROM affarspriser)
Medlem sedan maj 2001797 inlägg
#3

Härligt! :e
Men, för att få första satsen att fungera ville Access ta bort "count(*)" i underfrågan, den kunde inte hämta fram flera fält. Men när jag tog bort det fungerade det utmärkt. Även den andra satsen verkar ha fungerat som jag hade velat, ska dubbelkolla imorrn. Tack ska du ha! :bire

Medlem sedan juni 200032 967 inlägg
#4

Men, för att få första satsen att fungera ville Access ta bort "count(*)" i underfrågan, den kunde inte hämta fram flera fält.

Ja, det är självklart. :)

Jag klantade till det när jag gjorde om det till en underfråga precis innan jag postade inlägget. Ledsen att jag skapade lite förvirring. :)

mvh

Medlem sedan maj 2001797 inlägg
#5

Hähä, ingen som helst fara. Det är bara bra att få tänka lite själv också så man lär sig nån gång. Du kanske ska börja lägga in medvetna felaktigheter i dina i övrigt klockrena svar, i utbildningssyfte alltså? :)

342 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
209 ms — ändringar (db)