Avatar billede thomas_n Nybegynder
30. oktober 2008 - 09:14 Der er 5 kommentarer

User Defined Functions og IN

Er der nogen der ligger inde med et eksempel på hvordan man bruger 'IN' i en User Defined Funcion i MS SQL server?

Jeg vedlægger lige den del af SQL strengen hvor jeg har brug for at bruge 'IN':

WHERE Dato BETWEEN @FraDato AND @Tildato AND DATEPART(dw, Dato) IN (@Dage)

V.h.
Thomas
Avatar billede HenrikSjang Nybegynder
30. oktober 2008 - 11:11 #1
Du kan evt hente inspiration i denne: http://www.eksperten.dk/spm/850842

(som i skrivende stund ligger lige ved siden af dit eget spørgsmål)
Avatar billede thomas_n Nybegynder
31. oktober 2008 - 11:25 #2
Har kigget på spørgsmål 850842, men kan ikke få det til at virke.

Udsnit af User Defined Function:
CREATE FUNCTION ModulusTimeTable (@IntervalIMinutter int, @FraDato datetime, @TilDato datetime, @Dage varchar(200))

Parametre i SQL query:
from dbo.TimeTable (15, '2008-10-20', '2008-10-29', '1,2')
WHERE Dato BETWEEN @FraDato AND @Tildato AND DATEPART(dw, Dato) IN (@Dage)

Fejlen:
Syntax error converting the varchar value '1,2' to a column of data type int.

Har prøvet lidt af hvert, men intet virker :(
Avatar billede HenrikSjang Nybegynder
31. oktober 2008 - 11:39 #3
Der hvor du skriver "IN (@Dage)" Prøv at lave det om til:

IN (dbo.fn_split(@Dage))

Hvor du altså så også har lavet Numbers-tabellen fra det andet spørgsmål, samt funktionen fn_split (som også står i det andet spørgsmål)
Avatar billede thomas_n Nybegynder
03. november 2008 - 10:48 #4
Har oprettet numbers tabellen og funktionen fn_split, men får nedenstående fejl ved afvikling af min query.

Er det er problem at kalde en anden User Definded function inde fra en eksisterende?

Msg 4121, Level 16, State 1, Procedure TimeTable, Line 6

Cannot find either column "dbo" or the user-defined function or aggregate "dbo.fn_split", or the name is ambiguous.

/Thomas
Avatar billede thomas_n Nybegynder
04. november 2008 - 10:06 #5
Fik den løst.

Tak for hjælpen med at komme på det rigtige spor.
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