sql server中模棱两可的列名
您好,我有一个含糊不清的列名在m存储过程的付款。出价id有人可以帮助解决这个问题,请sql server中模棱两可的列名,sql,Sql,您好,我有一个含糊不清的列名在m存储过程的付款。出价id有人可以帮助解决这个问题,请 SET NOCOUNT ON; SELECT ROW_NUMBER() OVER ( ORDER BY [PaymentID] ASC )AS RowNumber ,[PaymentID] ,[Name] ,[WinningPrice] ,[PaymentDate] ,[Payment.BidID] INTO #Results FROM Item INNER JO
SET NOCOUNT ON;
SELECT ROW_NUMBER() OVER
(
ORDER BY [PaymentID] ASC
)AS RowNumber
,[PaymentID]
,[Name]
,[WinningPrice]
,[PaymentDate]
,[Payment.BidID]
INTO #Results
FROM Item INNER JOIN
Auction ON Item.ItemID = Auction.ItemID INNER JOIN
BID ON Auction.AuctionID = BID.AuctionID INNER JOIN
Payment ON BID.BidID = Payment.BidID
Where (BID.Status = 'Paid') AND (BID.BuyerID = @buyer)
SELECT @RecordCount = COUNT(*)
FROM #Results
SELECT * FROM #Results
WHERE RowNumber BETWEEN(@PageIndex -1) * @PageSize + 1 AND(((@PageIndex -1) * @PageSize + 1) + @PageSize) - 1
DROP TABLE #Results
End
尝试此操作,为不明确的列名创建别名
SET NOCOUNT ON;
SELECT ROW_NUMBER() OVER
(
ORDER BY [PaymentID] ASC
)AS RowNumber
,[PaymentID]
,[Name]
,[WinningPrice]
,[PaymentDate]
,[Payment.BidID] as PBidID
INTO #Results
FROM Item INNER JOIN
Auction ON Item.ItemID = Auction.ItemID INNER JOIN
BID ON Auction.AuctionID = BID.AuctionID INNER JOIN
Payment ON BID.BidID = Payment.BidID
Where (BID.Status = 'Paid') AND (BID.BuyerID = @buyer)
SELECT @RecordCount = COUNT(*)
FROM #Results
SELECT * FROM #Results
WHERE RowNumber BETWEEN(@PageIndex -1) * @PageSize + 1 AND(((@PageIndex -1) * @PageSize + 1) + @PageSize) - 1
DROP TABLE #Results
End
您在查询中使用的列名可在多个表中使用 如果没有表结构,我们无法确定它是哪一个,但可能是查询中有别名的:
,[PaymentID]
,[Name]
,[WinningPrice]
,[PaymentDate]
希望这有帮助
突出显示了我更改的行良好做法是使用别名,如:
SET NOCOUNT ON;
SELECT ROW_NUMBER() OVER
(
ORDER BY i.[PaymentID] ASC --which table it belongs? put correct alias
)AS RowNumber
,i.[PaymentID]
,i.[Name]
,i.[WinningPrice]
,i.[PaymentDate]
,p.[BidID]
INTO #Results
FROM Item i
INNER JOIN Auction a
ON i.ItemID = a.ItemID
INNER JOIN BID b
ON a.AuctionID = b.AuctionID
INNER JOIN Payment p
ON b.BidID = p.BidID
Where (b.Status = 'Paid')
AND (b.BuyerID = @buyer)
SELECT @RecordCount = COUNT(*)
FROM #Results
在您的选择中尝试过TableName.ColumnName吗?您在
[Payment.BidID]
上没有遇到错误吗?是@IdanArye我遇到了错误there@Mathias是的,我试过这个,你有没有试过[Payment].[BidID]或者像大多数人建议的那样使用别名
SET NOCOUNT ON;
SELECT ROW_NUMBER() OVER
(
ORDER BY i.[PaymentID] ASC --which table it belongs? put correct alias
)AS RowNumber
,i.[PaymentID]
,i.[Name]
,i.[WinningPrice]
,i.[PaymentDate]
,p.[BidID]
INTO #Results
FROM Item i
INNER JOIN Auction a
ON i.ItemID = a.ItemID
INNER JOIN BID b
ON a.AuctionID = b.AuctionID
INNER JOIN Payment p
ON b.BidID = p.BidID
Where (b.Status = 'Paid')
AND (b.BuyerID = @buyer)
SELECT @RecordCount = COUNT(*)
FROM #Results