max语句中的SQL多个条件不起作用
我正在尝试筛选我的表,并获取以最高价出售的项目。为了做到这一点,我使用“AuctionOpen”来确定拍卖是否仍然开放。拍卖无法打开,物品已经售出(稍后我会将此用于最昂贵的物品) 我可以使用AND运算符通过以下方式比较AuctionOpen:max语句中的SQL多个条件不起作用,sql,max,conditional-statements,sql-server-2016-express,Sql,Max,Conditional Statements,Sql Server 2016 Express,我正在尝试筛选我的表,并获取以最高价出售的项目。为了做到这一点,我使用“AuctionOpen”来确定拍卖是否仍然开放。拍卖无法打开,物品已经售出(稍后我会将此用于最昂贵的物品) 我可以使用AND运算符通过以下方式比较AuctionOpen: select s.* from auctionsite.dbo.Auction s where s.HighestBid = (select max(s2.HighestBid) from auctionsite.dbo.Auction s2) a
select s.*
from auctionsite.dbo.Auction s
where s.HighestBid = (select max(s2.HighestBid) from auctionsite.dbo.Auction
s2) and s.AuctionOpen = 0;
当我将它设置为0时,我会得到结果,但当我将它设置为1时,它只返回列标题,即使表中有设置为1的值
与0比较时的结果:
结果与1相比:
很明显,最高出价出现在
AuctionOpen 1
的记录上
我建议使用orderby
和fetch
(或数据库中的等效项):
在SQL Server中,使用
选择顶部(1)
或偏移0行仅获取前1行
我认为您应该尝试计数聚合函数
在这里,试试这个:
**Select count(Item_name) As
[金额最高的项目]
从表\u名称
按项目名称分组\u DSEC**
您可以在此处查看我的页面,了解一些SQL/MySQL课程拍卖无法打开,物品已售出,因此当AuctionOpen=0时,这意味着拍卖未打开,物品已售出,您将获得结果。当AuctionOpen=1时,拍卖仍在进行中,物品尚未售出,您不需要购买;我得不到结果。那么问题出在哪里?@forpas稍后我将使用相同的操作来获取仍然可用的最高价商品。您发布的示例数据并不表明您所说的问题。那我们该怎么办呢?推测?因为。。。。我发布的图片显示了查询结果。巴德,我不太确定你想要什么。当改成SQL Server语法时,这就行了。非常感谢。
**Select count(Item_name) As