Avatar billede ihtezaz Praktikant
29. juli 2005 - 10:40 Der er 6 kommentarer og
1 løsning

Subquery returner flere poster, derfor vil jeg lave en while i sq

Hej jeg har lavet følgende sql sætning :

SELECT Kommune FROM Kommuner WHERE Kommuneid=(SELECT Kommuneid FROM postdistrikter WHERE postnummer=3770)

Subquery returner 2 poster, dvs. 2 kommune id'er, og ud fra disse to skal jeg så finde 2 kommuner. Men jeg får fejlen :

Server: Msg 512, Level 16, State 1, Line 1
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.

For at kunne løse det, mener jeg en while løkke være ok, men hvordan laver jeg det lige i sql.
Avatar billede madschristensen Nybegynder
29. juli 2005 - 10:43 #1
Select Kommune FROM kommuner Where Kommuneid in
(Select......)
Avatar billede steent Nybegynder
29. juli 2005 - 10:43 #2
SELECT Kommune FROM Kommuner WHERE Kommuneid=(SELECT DISTINCT Kommuneid FROM postdistrikter WHERE postnummer=3770)

Måske??
Avatar billede madschristensen Nybegynder
29. juli 2005 - 10:45 #3
Så finder den kun den ene kommune... Hvis man benytter IN vil du få alle kommuner i det postnr ud...
Avatar billede ihtezaz Praktikant
29. juli 2005 - 10:46 #4
den første virker super duber. tak.
Avatar billede madschristensen Nybegynder
29. juli 2005 - 10:47 #5
Så lidt ;O))
Avatar billede ldanielsen Nybegynder
29. juli 2005 - 13:00 #6
For en anden gangs skyld; WHILE i T-SQL laves:

WHILE <forbehold>
BEGIN
  <kode her>
END

- og hvis du vil løbe et resultatsæt igennem skal du bruge en CURSOR. Det kan du læse mere om i BOL (Books OnLine)
Avatar billede mnoer Nybegynder
29. juli 2005 - 13:17 #7
det er bare meget dyrt (performance) at lave lykker (while og cursor) i forhold til select blabla ..... where id in (sel.....)
det var bare en lille side bemærkning :)
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