SQL funkcja skalarna

0

hej mam problem z utworzeniem funkcji skalarnej. Funkcja miałaby wyświetlać ile jest utworów w każdym programie.
W kazym programie jest 10 utworów. Programów jest 6 numery ID odpowiednio 1,2,3,4,5,6. Razem 60 utworów.
Funkcję zapisałam tak:

CREATE FUNCTION dbo.utwor_program (@progID int)
RETURNS INT
AS
BEGIN
DECLARE @utw INT
SELECT @utw= utwor_ID FROM Utwory WHERE Program_ID=@progID
RETURN @utw
END

Funkcja zwraca mi odpowiednią wartość dla ID=1 (10 utworów) lecz w przypadku już ID=2 pokazuje 20, ID=3 30 itd.
Czy ktoś wie co jest nie tak w kwerendzie?

0

zwracasz ID a nie liczbe utworow. Sql server widocznie laduje do zmiennej ostatni id z recordsetu

1
CREATE FUNCTION dbo.utwor_program (@progID int)
RETURNS INT        
AS
BEGIN
DECLARE @utw INT
SELECT  @utw= count(utwor_ID) FROM Utwory WHERE Program_ID=@progID
RETURN @utw
END
0

Dokonujesz konwersji z nvarchar do int, prawdopodobnie w polu miasto masz 'słupsk' i starasz przypisać go wartości int (@czy3), tak samo w ifie porównujesz inta do łańcucha znaków....

0

tak, już udało mi się na to wpaść dlatego usunęłam, dzięki ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1