Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2005 Forums
 Transact-SQL (2005)
 while in a temp table setting

Author  Topic 

chippyles
Yak Posting Veteran

68 Posts

Posted - 2007-06-28 : 15:10:38
I am currently trying to parse out data and basically transform it so it will give me data in a pivot view.

In the attached code you should be able to copy and paste it into your query analyzer so you can assist me.

the problem I am seeing is in the while statement. I put all of the data in a temp table and I am trying to go through all of the lines and place the variable @LINEID in the where clause for line in the query. I want to only retrieve the counter and line data as long as they are equal, do the rest of the code which is commented out. I don't understand why the query is not understanding if @LINEID = 1 then in the WHERE clause I should only see line 1.

I appreciate your assistance a head of time.

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TESTDATA]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[TESTDATA]
GO

CREATE TABLE [dbo].[TESTDATA] (
[LINEID] [int] NULL ,
[USERLNG2] [int] NULL ,
[PRODNO] [nvarchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[COMMENT1] [nvarchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[WONO] [nvarchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO

--INSERT DATA INTO NEW TABLE
INSERT INTO TESTDATA([LINEID], [USERLNG2],[PRODNO], [COMMENT1],[WONO])
SELECT 1,1,'ABC','ASDASD',11111111 UNION ALL
SELECT 1,2,'DEF','ASDASD',22222222 UNION ALL
SELECT 2,2,'GHI','ASDASD',33333333 UNION ALL
SELECT 2,3,'JKL','ASDASD',44444444 UNION ALL
SELECT 3,1,'MNO','ASDASD',55555555 UNION ALL
SELECT 4,1,'PQR','ASDASD',66666666 UNION ALL
SELECT 4,2,'STU','ASDASD',77777777 UNION ALL
SELECT 5,1,'VWX','ASDASD',88888888 UNION ALL
SELECT 5,2,'YZ0','ASDASD',99999999 UNION ALL
SELECT 6,1,'123','ASDASD',00000000

DECLARE @Data
TABLE (LINEID Integer,
USERLNG2 Integer,
COMMENT1 nvarchar(100),
PRODNO nvarchar(20),
WONO nvarchar(20))

DECLARE @TEMPDATA
TABLE (RowId Integer Identity(1,1),
LINEID Integer,
USERLNG2 Integer,
PRODNO nvarchar(20),
WONO nvarchar(20))

DECLARE @TEMPDATA1
TABLE (RowId Integer Identity(1,1),
LINEID Integer,
PRODNO nvarchar(20),

c0_WO_NUM varchar(8),
c1_WO_NUM varchar(8),
c2_WO_NUM varchar(8),
c3_WO_NUM varchar(8),
c4_WO_NUM varchar(8),
c5_WO_NUM varchar(8),
c6_WO_NUM varchar(8),
c7_WO_NUM varchar(8),
c8_WO_NUM varchar(8),
c9_WO_NUM varchar(8))

DECLARE @LINEID Integer

INSERT INTO @DATA(LINEID,USERLNG2,PRODNO,COMMENT1,WONO)
SELECT LINEID,USERLNG2,PRODNO,COMMENT1,WONO FROM TESTDATA ORDER BY LINEID

--SELECT *
--FROM @DATA

SET @LINEID = 0
WHILE @LINEID <10
BEGIN
SET @LINEID = @LINEID + 1

INSERT INTO @TEMPDATA(LINEID,USERLNG2,PRODNO,WONO)
SELECT LINEID,USERLNG2,PRODNO,WONO
FROM @DATA
WHERE LINEID = @LINEID

PRINT @LINEID
/*

SELECT A.LINEID, A.WONO AS c0_WO_NUM,B.WONO AS c1_WO_NUM,C.WONO AS c2_WO_NUM,D.WONO AS c3_WO_NUM,E.WONO AS c4_WO_NUM,F.WONO AS c5_WO_NUM,
G.WONO AS c6_WO_NUM,H.WONO AS c7_WO_NUM,I.WONO AS c8_WO_NUM,J.WONO AS c9_WO_NUM
FROM
(SELECT *
FROM @TEMPDATA
WHERE ROWID=1) A
LEFT OUTER JOIN
(SELECT *
FROM @TEMPDATA
WHERE ROWID=2) B
ON A.LINEID = B.LINEID
LEFT OUTER JOIN
(SELECT *
FROM @TEMPDATA
WHERE ROWID=3) C
ON A.LINEID = C.LINEID
LEFT OUTER JOIN
(SELECT *
FROM @TEMPDATA
WHERE ROWID=4) D
ON A.LINEID = D.LINEID
LEFT OUTER JOIN
(SELECT *
FROM @TEMPDATA
WHERE ROWID=5) E
ON A.LINEID = E.LINEID
LEFT OUTER JOIN
(SELECT *
FROM @TEMPDATA
WHERE ROWID=6) F
ON A.LINEID = F.LINEID
LEFT OUTER JOIN
(SELECT *
FROM @TEMPDATA
WHERE ROWID=7) G
ON A.LINEID = G.LINEID
LEFT OUTER JOIN
(SELECT *
FROM @TEMPDATA
WHERE ROWID=8) H
ON A.LINEID = H.LINEID
LEFT OUTER JOIN
(SELECT *
FROM @TEMPDATA
WHERE ROWID=9) I
ON A.LINEID = I.LINEID
LEFT OUTER JOIN
(SELECT *
FROM @TEMPDATA
WHERE ROWID=10) J
ON A.LINEID = J.LINEID
DELETE @TEMPDATA
*/



SELECT *
FROM @TEMPDATA
END




Koji Matsumura
Posting Yak Master

141 Posts

Posted - 2007-06-28 : 23:28:53
Your second line also has LINEID = 1.
Go to Top of Page

chippyles
Yak Posting Veteran

68 Posts

Posted - 2007-06-29 : 10:33:24
that is to be expected
Go to Top of Page
   

- Advertisement -