Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.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
如何在SQL中找到包含WHERE子句的最大列值?_Sql_Select_Max_Where Clause - Fatal编程技术网

如何在SQL中找到包含WHERE子句的最大列值?

如何在SQL中找到包含WHERE子句的最大列值?,sql,select,max,where-clause,Sql,Select,Max,Where Clause,我正在尝试用SQL编写一个过程。 我想在将所有日期项与传递的输入参数匹配后,从表中打印具有“最大分数”的记录。 现在,代码只打印与指定日期对应的所有记录。 我不知道在这种情况下如何使用MAX() /* ========================================================= Procedure to find the Highest Movie Rating on a particular date. Given, an inpDate (input D

我正在尝试用SQL编写一个过程。 我想在将所有日期项与传递的输入参数匹配后,从表中打印具有“最大分数”的记录。 现在,代码只打印与指定日期对应的所有记录。 我不知道在这种情况下如何使用MAX()

/* =========================================================
Procedure to find the Highest Movie Rating on a particular date.
Given, an inpDate (input Date) it first looks up all Movie Reviews
of that particular date.
Then, it checks a StandardizedReviews Table (sTbl) and
finds the MAXIMUM adjusted_score with the
Highest Review Score (the variable adjusted_score)
========================================================= */
Use StandardizedReviews
Drop Procedure if exists HighestReview;
GO

CREATE PROCEDURE HighestReview @inpDate DATE AS (
        SELECT sTbl.adjusted_score "Max Score"
        FROM dbo.StandardizedReviews sTbl
        WHERE CAST(sTbl.date as DATE) = CAST(@inpDate as DATE)
        GROUP BY sTbl.date, sTbl.adjusted_score
)
GO
exec HighestReview '2020-03-05'
GO
现在,我的输出如下所示:

但我希望它能显示100分的记录。
谢谢。

您只需将调整后的分数值用MAX()包装为“MAX score”,它将仅选择最高分数。您还将删除您的组中对sTbl.adjusted_score的引用,并且仅在日期之前按顺序删除:

CREATE PROCEDURE HighestReview @inpDate DATE AS (
    SELECT MAX(sTbl.adjusted_score) AS 'Max Score'
    FROM dbo.StandardizedReviews sTbl
    WHERE CAST(sTbl.Date AS DATE) = CAST(@inpDate AS DATE)
    GROUP BY sTbl.Date
)

谢谢您。这就解决了问题。