Avatar billede left Nybegynder
20. februar 2003 - 21:49 Der er 16 kommentarer og
1 løsning

SP med distinct

Følgende SP skulle gerne vise en enkelt forekomst af 2 ens bynavne - men hvorfor sker det ikke?

CREATE PROCEDURE sp_by_fritekst
@Ing_1 varchar(50)
AS
select distinct Bynavn,* from area
where Bynavn LIKE '%' + @Ing_1 + '%'
order by Bynavn
GO
Avatar billede somaliomar Praktikant
20. februar 2003 - 21:50 #1
Prøv at fjerne DISTINCT sådan her:

CREATE PROCEDURE sp_by_fritekst
@Ing_1 varchar(50)
AS
select Bynavn,* from area
where Bynavn LIKE '%' + @Ing_1 + '%'
order by Bynavn
GO
Avatar billede somaliomar Praktikant
20. februar 2003 - 21:53 #2
Eller

CREATE PROCEDURE sp_by_fritekst
@Ing_1 varchar(50)
AS
select Bynavn,* from area
where Bynavn = @Ing_1
order by Bynavn
GO
Avatar billede askhoej Praktikant
20. februar 2003 - 21:55 #3
Du kan ikke sige: SELECT kolonne, *
Avatar billede askhoej Praktikant
20. februar 2003 - 22:05 #4
Måske kan du lige forklare præcis hvad det ønskede resultat skal være?
Avatar billede left Nybegynder
20. februar 2003 - 22:05 #5
Jamen, hvorfor fjerne distinct, når jeg netop vil trimme kolonnen for dubletter?
Avatar billede left Nybegynder
20. februar 2003 - 22:08 #6
Jeg har en database med postnumre over hele Danmark. I københavnsområdet er der over 100 poster, som har samme bynavn (København K) - jeg ønsker derfor nu at få vist alle bynavne UDEN dubletter.

Dette:
København K
København K
København K
Århus N

Bliver til:
København K
Århus N

For I mig?
Avatar billede askhoej Praktikant
20. februar 2003 - 22:10 #7
Hvis det kun er bynavnet du vil have listet så skriver du:

SELECT DISTINCT(Bynavn) FROM area
WHERE Bynavn LIKE '%' + @Ing_1 + '%'
ORDER BY Bynavn

Ønsker du at få mere end bare bynavnet ud?
Avatar billede stig3 Mester
20. februar 2003 - 22:12 #8
Jeg tror det går galt i denne linie:
select distinct Bynavn,* from area

Når du tager * med vil det jo sige at du tager alle "kolonerne" med - Dermed også den kolonne hvor posterne er forskellige.

Prøv at specificer hvilke kolonner du vil have med og fjern stjernen.
Avatar billede left Nybegynder
20. februar 2003 - 22:18 #9
Jeg vil have Bynavn og postnr med ud - altså 2 kolonner.
Avatar billede askhoej Praktikant
20. februar 2003 - 22:20 #10
Men hvilket postnr - du skriver jo at der er flere postnr'er til den samme by(del) ?
Avatar billede askhoej Praktikant
20. februar 2003 - 22:22 #11
Med DISTINCT siger du at den række du henter skal være unik og følgende rækker er feks. unikke:
1000    København K
1001    København K
1002    København K
1003    København K
1004    København K
1005    København K
1006    København K
1007    København K
Avatar billede stig3 Mester
20. februar 2003 - 22:23 #12
Så prøv at skriv:
select distinct Bynavn,postnr from area
Avatar billede janus_007 Nybegynder
20. februar 2003 - 22:23 #13
Stop... Lad os hellere høre left om hvilke dubletter han ser i hans tabel!
Og så hjælpe ham med at fjerne dem, istedet for at sidde og gætte :O)
Avatar billede stig3 Mester
20. februar 2003 - 22:24 #14
askhøj>>

Jeg tror mere det er:
1000, Kbh K, Den Danske Bank
1000, Kbh K, Cafe KBH
osv.
Avatar billede left Nybegynder
20. februar 2003 - 22:30 #15
Jeg tror jeg har fundet en løsning. Hvis jeg nu udelukkende laver DISTINCT på Bynavnet, så burde der ikke være dubletter overhovedet. Altså glemmer jeg postnummeret nu - dette slår jeg så senere op vha. bynavnet :-)

Hvordan skal det sql-kald se ud?
Avatar billede askhoej Praktikant
20. februar 2003 - 22:30 #16
janus_007 >> enig, den må i ordne jer smutter i seng - ha en fortsat god aften :-)

Lige et sidste gæt :o)

SELECT DISTINCT(a.bynavn),(SELECT TOP 1 b.postnr FROM area b WHERE b.bynavn = a.bynavn) as [Første postnr. ;-)]
FROM area a
WHERE a.bynavn LIKE '%' + @Ing_1 + '%'
ORDER BY a.bynavn

;-)
Avatar billede stig3 Mester
20. februar 2003 - 22:46 #17
Hvis du bare vil have bynavn tror jeg på denne her:

CREATE PROCEDURE sp_by_fritekst
@Ing_1 varchar(50)
AS
select distinct Bynavn from area
where Bynavn LIKE '%' + @Ing_1 + '%'
order by Bynavn
GO
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
Computerworld tilbyder specialiserede kurser i database-management

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