MSSQL Dlaczego wartość nie zostaje przypisana do zmiennej?

0

Witam,
jestem kompletnym żółtodziobem jeśli chodzi o SQL. Napisałem prosty kod. Jednak z jakiegoś powodu nie chce przypisać się wartość do zmiennej. Jakieś sugestie?

DECLARE @FK nvarchar(9), @a nvarchar(2), @b nvarchar(2), @c nvarchar(2)
SET @FK='-1x2+2x-1' --wzór funkcji
SET @a=LEFT(@FK,CHARINDEX('x2',@FK)-1)
SET @b=SUBSTRING(@FK,CHARINDEX('x2',@FK,1)+2,3)
IF LEN(@FK)>7
	SET @c=RIGHT(@FK,2)
	ELSE
	SET @c=0
PRINT('a='+@a)
PRINT('b='+@b)
PRINT('c='+@c)
-- zmienne na potrzeby obliczeń
DECLARE @a1 int, @b1 int, @c1 int, @delta decimal
--przekształcenie stringów na int
SET @a1=CONVERT(int,@a)
SET @b1=CONVERT(int,@b)
SET @c1=CONVERT(int,@c)
--liczymy deltę
SET @delta=SQUARE(@b1)-4*@a1*@c1
PRINT('delta='+ CAST(@delta as nvarchar))
--liczymy miejsca zerowe
	IF @delta>0
		BEGIN
		DECLARE @x1 decimal, @x2 decimal
		SET @x1=(-1*@b1-SQRT(@delta))/(2*@a1)
		SET @x2=(-1*@b1+SQRT(@delta))/(2*@a1)
		PRINT(@x1)--nie działa
		PRINT(@x2)--nie działa
		PRINT((-1*@b1-SQRT(@delta))/(2*@a1))
		PRINT((-1*@b1+SQRT(@delta))/(2*@a1))
		END 
	ELSE IF @delta=0
		BEGIN
		DECLARE @x decimal
		SET @x=(-@b1/2*@a1)
		PRINT(@x)
		END
	ELSE
	PRINT('Brak miejsc zerowych')
1

Tak na szybko, sprawdź to:

SET @x=(-@b1/2.0*@a1)

Edit: yyy uruchomiłem ten Twój kod przed chwilą i hmm tam powinno być 1 - więc w czym rzecz ?

0

@BlackBad: Tak, przepraszam, to był stary komentarz. Chodzi o linie 27-28.
A teraz widzę, że linie 27-28 też już działają. musiałem mieć jakiś błąd wcześniej i go przy okazji jakiejś zmiany usnąłem :)

0

Czyli jest Ok - nie było tematu ? :)

4

@BlackBad: Tak, słaby debiut na forum :D

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