0

我正在尝试过滤我的表并获得以最多金额售出的项目。为了做到这一点,我使用“AuctionOpen”来确定拍卖是否仍然开放。拍卖无法打开,并且该物品已售出(稍后我将使用它来购买最昂贵的物品)。

我可以使用 AND 运算符通过以下方式比较 AuctionOpen:

select s.*
from auctionsite.dbo.Auction s
where s.HighestBid = (select max(s2.HighestBid) from auctionsite.dbo.Auction 
   s2) and s.AuctionOpen = 0;

当我将其设置为零时,我会得到结果,但是当我将其设置为 1 时,即使表中的值设置为 1,它也只会返回列标题。

与 0 相比的结果:

桌子

与 1 相比的结果:

其他表

4

2 回答 2

1

显然,最高出价记录在哪里AuctionOpen <> 1

我建议使用order byand fetch(或数据库中的等价物):

select s.*
from auctionsite.dbo.Auction s
where s.AuctionOpen = 0
order by s.HIghestBid desc
fetch first 1 row only

在 SQL Server 中,使用select top (1)offset 0 rows fetch first 1 row only

于 2019-07-18T19:01:14.667 回答
0

我认为您应该尝试 Count 聚合函数

在这里,试试这个:

    **Select count(Item_name) As 

[最高金额的项目] from table_name Group by Item_name DSEC;**

您可以在此处查看我的页面SQL/MySQL 提示,了解一些 SQL/MySQL 课程

于 2019-07-18T19:22:47.233 回答