Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
max语句中的SQL多个条件不起作用_Sql_Max_Conditional Statements_Sql Server 2016 Express - Fatal编程技术网

max语句中的SQL多个条件不起作用

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

我正在尝试筛选我的表,并获取以最高价出售的项目。为了做到这一点,我使用“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;
当我将它设置为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