带有父参数的SQL嵌套查询

时间:2011-05-17 21:21:29

标签: sql sql-server

我需要写一个场景的查询,但我写错了。

假设有两个表项和出价。通过某种过滤器

选择项目
SELECT i.* FROM Items i WHERE i.Id = 2

现在有一个Bids表,其中包含“ItemId”列,用于将项目链接到出价。现在我希望所有项目的数据都包含HighestBid,LowestBid和TotalBids,我正在尝试这个但是它没有用。

SELECT i.*, hal.* 
FROM Items i, (SELECT MAX(b.OfferAmount), MIN(b.OfferAmount), COUNT(b.*) FROM Bids b WHERE b.ItemId = i.Id) As hal
WHERE i.Id = 2

这有什么问题吗?

1 个答案:

答案 0 :(得分:3)

试试这个

SELECT i.*, 
       hal.* 
FROM   items i 
       INNER JOIN (SELECT MAX(b.offeramount), 
                          MIN(b.offeramount), 
                          b.itemid, 
                          COUNT(b.*) 
                   FROM   bids b 
                   GROUP  BY itemid) AS hal 
         ON i.Id= hal.itemid 
WHERE  i.id = 2