SQL fråga, subquery ihop med count
Senast redigerat
Visa signatur
Hej jag håller på att skapa en enkel databas i Microsoft Access.
Den innehåller en kontakt-tabell där jag vill kunna filtrera bort alla som bor på samma adress.
D.v.s att endast personer som bor ensamma ska visas.
Tabellen innehåller följande fält:
ID, forname, aftername, streetadress, postadress
Jag testar följande SQL sats, men får den ej att fungera.
SELECT Blad1.forname, Blad1.aftername, Blad1.streetadress, Blad1.postadress
FROM Blad1
WHERE EXISTS (SELECT Blad1.streetadress, COUNT(*) AS calc
FROM Blad1
GROUP BY Blad1.streetadress
HAVING COUNT(*) = 1);
Resultatet jag får är att den visar alla poster även de där flera bor på samma adress.
Jag misstänker att felet ligger i att jag har missuppfattat EXISTS, men jag får det att att fungera hur mycket jag än försöker.
Tacksam för hjälp.
//Johan
Bra resurs: Intermediate Microsoft Jet SQL for Access 2000
Fortsätt testa, ett tips är att göra en väldigt enkel databas att prova SQL-queries på.
SELECT Blad1.forname, Blad1.aftername, Blad1.streetadress, Blad1.postadress
FROM Blad1
WHERE EXISTS (SELECT Blad1.streetadress, COUNT(*) AS calc
FROM Blad1
GROUP BY Blad1.streetadress
HAVING COUNT(*) = 1);
//Johan
Det här borde funka
SELECT Blad1.forname, Blad1.aftername, Blad1.streetadress, Blad1.postadress
FROM [Blad1]
WHERE EXISTS (SELECT b2.streetadress, COUNT(*) AS calc
FROM [Blad1] b2
WHERE Blad1.streetadress = b2.streetadress
GROUP BY b2.streetadress
HAVING COUNT(*) = 1);
Sen är ett tips att antingen köra engelska eller svenska och inte någon svengelska när du döper objekten.
Bra resurs: Intermediate Microsoft Jet SQL for Access 2000
Fortsätt testa, ett tips är att göra en väldigt enkel databas att prova SQL-queries på.
Tackar för tipset, jag skriver ut denna och ska läsa på.
Det här borde funka
SELECT Blad1.forname, Blad1.aftername, Blad1.streetadress, Blad1.postadress
FROM [Blad1]
WHERE EXISTS (SELECT b2.streetadress, COUNT(*) AS calc
FROM [Blad1] b2
WHERE Blad1.streetadress = b2.streetadress
GROUP BY b2.streetadress
HAVING COUNT(*) = 1);
Sen är ett tips att antingen köra engelska eller svenska och inte någon svengelska när du döper objekten.
Fungerar helt perfekt, tackar så vänligt.
Och självklart ska jag kontrollera min stavning bättre, en kodsnutt ska självklart inte innehålla svengelska. Tackar även för detta påpekande, då jag genast rättar koden.
Copyright © 1999–2023 Geeks AB. Allt innehåll tillhör Geeks AB.
Citering är tillåten om källan anges.