Hejsan,
Jag vill undvika dubletter när jag visar resultatet på min SELECT. Det är ett vanligt adressregister, och jag tänkte att för att få unika poster så var allt tillåtet så länge som Förnamn, Efternamn, och Gata INTE är likadana i de tre fallen. Om Förnamn och Efternamn är lika MEN Gata är annat så är det okay t.ex.
Jag har chansat med typ
"SELECT DISTINCT (Förnamn, Efternamn, Gata), Postnr, Stad FROM KundReg ORDER BY Efternamn ASC"
men får felmeddelande... Nån som vet hur man gör...? :) Är det nån som även vet hur man deletar poster baserat på ovanstående kriterium...?
Tack :)
------------------
"Between stimulus and response is a pause wherein our ability to choose lies".
[Redigerat av CokeLight den 11 jan 2002]
LarsGMedlem sedan dec. 200012 464 inlägg Varför vill du ha med postnr och stad då?
Fråga 2:
http://cgi.webforum.nu/wf/Forum42/HTML/000720.html
------------------
essentitia preter non sans multiplicandum
Hej :)
Jag har ju kanske tänkt fel.. jag ville i alla fall lista även dessa kolumner så att man ser hela adressen till personen. Men det finns en del dubletter eftersom jag importerade från olika Excelblad.. och jag tänkte att en unika personer inte fick ha samma för/efternamn och gata.. ? :)
------------------
"Between stimulus and response is a pause wherein our ability to choose lies".
LarsGMedlem sedan dec. 200012 464 inlägg Jag förstår inte riktigt hur du tänker. Om du vill ha de poster där det finns duplikat med avseende på de tre kolumnerna så kan du göra
select förnamn,efternamn,gata from kundreg group by förnamn,efternamn,gata
having count(*) > 1
Att säga att man vill ha distinkta värden bara för en delmängd av kolumnerna i select-listan hänger inte ihop.
------------------
essentitia preter non sans multiplicandum
[Redigerat av LarsG den 11 jan 2002]
Hej LarsG :) Tack för snabba svaret !
Det var finurligt.. din lösning.. fast jag ville egentligen lista alla poster i databasen men utan dubletter baserat på det kriterium som jag skrev.. (om det inte finns bättre?)
När jag skrev
sqlCustomer = "SELECT Förnamn, Efternamn, Gata, Postnr, Stad FROM KundReg GROUP BY Förnamn, Efternamn, Gata HAVING COUNT(*) > 1 ORDER BY Efternamn ASC"
så kommer felmeddelande:
"Du försökte köra en fråga med en mängdfunktion som inte innehöll det angivna uttrycket 'Postnr'."
Måste man köra separata queries, en med group by och en vanlig o göra JOIN sen kanske?
(Det var någon som avbröt mig mitt i det roliga så jag kunde inte fortsätta förrän nu :) )
tack
------------------
"Between stimulus and response is a pause wherein our ability to choose lies".
[Redigerat av CokeLight den 11 jan 2002]
LarsGMedlem sedan dec. 200012 464 inlägg Det går inte att säga att du vill undvika dubletter på en delmängd av kolumnerna.
A!B
---
1!2
1!3
Um du vill ha både A och B men bara distinkta värden för A, vilket värde skulle B få då? Skulle A innehålla ett värde och B två värden?
Alla poster i ett resultat måste innehålla lika många kolumner.
Man kan ställa en fråga som
select a,max(b) from t
group by a
för att få fram det största värdet av B för varje distinkt värde på A.
Om du har en annan unik kolumn (id) i tabellen så kan du få fram en rad för varje grupp av distinkta värden
select * from kundreg
where id in (
select min(id) from kundreg
group by Förnamn, Efternamn, Gata)
------------------
essentitia preter non sans multiplicandum