|
TallOne
Starting Member
49 Posts |
Posted - 2009-01-21 : 15:55:04
|
| Hi everyone. The query at the end works. But I know there is a better way to write this. I didn't design the tables just recreating for you to see. Is this the best way to write it?Thanks,TallOneCREATE TABLE [dbo].[Test_A] ( [ID] [numeric](18, 0) IDENTITY(1,1) NOT NULL, [UserID] [numeric](18, 0) NOT NULL, [ItemNumber] [numeric](18, 0) NOT NULL, [COID] [numeric](18, 0) NOT NULL )GOINSERT INTO Test_A(UserID,ItemNumber,COID)VALUES('1','001','1')INSERT INTO Test_A(UserID,ItemNumber,COID)VALUES('2','002','1')INSERT INTO Test_A(UserID,ItemNumber,COID)VALUES('3','003','2')INSERT INTO Test_A(UserID,ItemNumber,COID)VALUES('4','004','2')INSERT INTO Test_A(UserID,ItemNumber,COID)VALUES('1','005','1')INSERT INTO Test_A(UserID,ItemNumber,COID)VALUES('1','006','1')CREATE TABLE [dbo].[Test_B] ( [ID] [numeric](18, 0) IDENTITY(1,1) NOT NULL, [UserID] [numeric](18, 0) NOT NULL, [LocationID] [numeric](18, 0) NULL )GOINSERT INTO Test_B(UserID,LocationID)VALUES('1','101')INSERT INTO Test_B(UserID,LocationID)VALUES('1','102')INSERT INTO Test_B(UserID,LocationID)VALUES('2','102')INSERT INTO Test_B(UserID,LocationID)VALUES('3','103')CREATE TABLE [dbo].[Test_C] ( [ID] [numeric](18, 0) IDENTITY(1,1) NOT NULL, [ItemNumber] [numeric](18, 0) NOT NULL, [LocationID] [numeric](18, 0) NULL )GOINSERT INTO Test_C(ItemNumber,LocationID)VALUES('001','101')INSERT INTO Test_C(ItemNumber,LocationID)VALUES('002','101')INSERT INTO Test_C(ItemNumber,LocationID)VALUES('003','101')INSERT INTO Test_C(ItemNumber,LocationID)VALUES('004','102')INSERT INTO Test_C(ItemNumber,LocationID)VALUES('005','101')INSERT INTO Test_C(ItemNumber,LocationID)VALUES('006','103')DECLARE @COID AS NUMERICDECLARE @UserID AS NUMERICSET @COID = 1SET @UserID = 1Select a.UserID, a.itemnumberfrom Test_A aWHERE a.COID = @COID AND @UserID IN ( SELECT UserID FROM Test_B WHERE LocationID = ISNULL((SELECT TOP 1 LocationID FROM Test_C WHERE ItemNumber = a.ItemNumber),0) )--DROP TABLE [dbo].[Test_A]--DROP TABLE [dbo].[Test_B]--DROP TABLE [dbo].[Test_C] |
|