ReportingAnalyst
MIS
Hi,
Can anybody point me why I get the error
"Invalid Column Name - emp" error.
Thanks.
Table structures are:
Tree
Stack
I am trying to convert the Tree (Adjancency Model) to Stack(Nested Model).
Can anybody point me why I get the error
"Invalid Column Name - emp" error.
Thanks.
Table structures are:
Tree
Code:
create table tree
(emp Char(10) Not Null,
Boss Char(10));
Stack
Code:
CREATE TABLE Stack
(Stack_top INTEGER Not Null,
emp Char(10) Not Null,
Lft Integer NOT NULL UNIQUE CHECK (Lft > 0),
Rgt Integer NOT NULL UNIQUE CHECK (Rgt > 1));
I am trying to convert the Tree (Adjancency Model) to Stack(Nested Model).
Code:
BEGIN
DECLARE @lft_rgt INTEGER, @stack_pointer INTEGER, @max_lft_rgt INTEGER;
SET @max_lft_rgt = 2 * (SELECT COUNT(*) FROM Tree);
INSERT INTO Stack
SELECT 1, emp, 1, @max_lft_rgt
FROM Tree
WHERE boss IS NULL;
SET @lft_rgt = 2;
SET @stack_pointer = 1;
DELETE FROM Tree
WHERE boss IS NULL;
-- The stack is ready and ready to use
WHILE (@lft_rgt < @max_lft_rgt)
Begin
[b] --here is where I get the 1st invalid column error[/b]
[b]IF EXISTS(SELECT * FROM Stack AS S1, Tree AS T1[/b]
WHERE S1.emp = T1.boss
AND S1.stack_top = @stack_pointer)
BEGIN --push when stack_top has subordinates and set the lft value
[b]--2nd invalid column error[/b]
[b]INSERT INTO Stack[/b]
SELECT (@stack_pointer + 1), MIN(T1.emp), @lft_rgt, NULL
FROM Stack AS S1, Tree AS T1
WHERE S1.emp = T1.boss
AND S1.stack_top = @stack_pointer;
--remove this row from Tree
DELETE FROM Tree
WHERE emp = (SELECT emp FROM Stack WHERE stack_top = @stack_pointer + 1);
SET @stack_pointer = @stack_pointer + 1;
END --push
ELSE
BEGIN --pop the stack and set the rgt value
UPDATE Stack
SET rgt = @lft_rgt,
stack_top = -stack_top
WHERE stack_top = @stack_pointer
SET @stack_pointer = @stack_pointer - 1;
END --pop
END; -- IF
END; --While