我需要比较两个表,然后只过滤掉那些没有匹配记录的记录。然后我只需要返回其中的几行。要返回我使用的行...
SELECT *
FROM (SELECT ROW_NUMBER() OVER (ORDER BY Orderby ASC)
AS Row, * FROM vImportFiltered where userid <> @userID)
AS vImport
WHERE Row >= @NumbFrom AND Row <= @NumbTo
对于我使用的记录过滤器...
SELECT * FROM ImportProducts IP 其中 IP.ImpProdNameID = @impProdNameID 和 IP.ImpProdCatID = @ImpProdCatID 和
NOT EXISTS (SELECT *
FROM dbo.ProductDetails PD INNER JOIN
dbo.ProductsLU PL ON PD.LUProdSellUseID = PL.LUProdSellUseID
WHERE
IP.ImpProductID = PD.ProdImpID AND
(CONVERT(varchar(36),PL.UserID) = @userID))
两者都是分开工作的,但是当我尝试将它们结合起来时,我得到了错误。
SELECT
*
FROM
(SELECT ROW_NUMBER() OVER (ORDER BY Orderby ASC)
AS Row, * ImportProducts IP Where IP.ImpProdNameID = @impProdNameID and IP.ImpProdCatID = @ImpProdCatID
and
NOT EXISTS (SELECT *
FROM dbo.ProductDetails PD INNER JOIN
dbo.ProductsLU PL ON PD.LUProdSellUseID = PL.LUProdSellUseID
WHERE
IP.ImpProductID = PD.ProdImpID AND
(CONVERT(varchar(36),PL.UserID) = @userID)) as vImport
WHERE Row >= @NumbFrom AND Row <= @NumbTo
错误:
Msg 102, Level 15, State 1, Line 17
Incorrect syntax near 'ImportProducts'.
Msg 156, Level 15, State 1, Line 25
Incorrect syntax near the keyword 'as'.
我也试过
WHERE
IP.ImpProductID = PD.ProdImpID AND
(CONVERT(varchar(36),PL.UserID) = @userID))And Row >= @NumbFrom AND Row <= @NumbTo
我究竟做错了什么?
谢谢