Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.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_Sql_Sql Server - Fatal编程技术网

返回最小行数()SQL

返回最小行数()SQL,sql,sql-server,Sql,Sql Server,这可能是我提出过的最笨拙的问题。我必须使用一个只读帐户,所以我不能使用临时表或任何使这更容易的东西。目标是在sumpiesesstrapped=maxSum时返回MIN(RowNum)。我已经尝试将整个查询添加到另一个子查询中,试图返回MIN(RowNum)但是,它是一对多,与主键JobNo绑定,当我将它绑定到JobNo和StepNo时,它给出的结果与下面的结果相同 SELECT JobNo, StepNo, sumPiecesScrapped, maxSum, CASE WHEN sumPie

这可能是我提出过的最笨拙的问题。我必须使用一个只读帐户,所以我不能使用临时表或任何使这更容易的东西。目标是在
sumpiesesstrapped=maxSum
时返回
MIN(RowNum)
。我已经尝试将整个查询添加到另一个子查询中,试图返回
MIN(RowNum)
但是,它是一对多,与主键
JobNo
绑定,当我将它绑定到
JobNo
StepNo
时,它给出的结果与下面的结果相同

SELECT
JobNo,
StepNo,
sumPiecesScrapped,
maxSum,
CASE
WHEN sumPiecesScrapped = maxSum THEN ROW_NUMBER() OVER(PARTITION BY JobNo ORDER BY JobNo, StepNo)
ELSE 0
END AS RowNum
FROM
(
    SELECT
    JobNo,
    StepNo,
    sumPiecesScrapped
    FROM
    (   
            SELECT
            JobNo,
            StepNo,
            SUM(PiecesScrapped) as sumPiecesScrapped
            FROM
            (
                SELECT
                JobNo,
                StepNo,
                PiecesFinished,
                PiecesScrapped
                FROM TimeTicketDet
            ) tt2

            GROUP BY JobNo, StepNo
    ) tt3
    GROUP BY JobNo, StepNo, sumPiecesScrapped
) tt4

LEFT JOIN
(
    SELECT
    JobNo as tt5JobNo,
    MAX(PiecesScrapped) as maxSum
    FROM
    (
        SELECT
        JobNo,
        PiecesScrapped
        FROM TimeTicketDet
    ) tt5
    GROUP BY JobNo
) tt5
ON tt5.tt5JobNo = tt4.JobNo


WHERE tt4.JobNo = '12345'
结果:

+-------+--------+-------------------+--------+--------+
| JobNo | StepNo | sumPiecesScrapped | maxSum | RowNum |
+-------+--------+-------------------+--------+--------+
| 12345 |     10 |                 0 |      5 |      0 |
| 12345 |     20 |                 1 |      5 |      0 |
| 12345 |     30 |                 5 |      5 |      3 |
| 12345 |     40 |                 5 |      5 |      4 |
| 12345 |     60 |                 5 |      5 |      5 |
| 12345 |     70 |                 5 |      5 |      6 |
+-------+--------+-------------------+--------+--------+
+-------+--------+-------------------+--------+--------+
| JobNo | StepNo | sumPiecesScrapped | maxSum | RowNum |
+-------+--------+-------------------+--------+--------+
| 12345 |     10 |                 0 |      5 |      0 |
| 12345 |     20 |                 1 |      5 |      0 |
| 12345 |     30 |                 5 |      5 |      3 |
| 12345 |     40 |                 5 |      5 |      3 |
| 12345 |     60 |                 5 |      5 |      3 |
| 12345 |     70 |                 5 |      5 |      3 |
+-------+--------+-------------------+--------+--------+
+-------+--------+-------------------+--------+-----------+
| JobNo | StepNo | sumPiecesScrapped | maxSum |  RowNum   |
+-------+--------+-------------------+--------+-----------+
| 12345 |     10 |                 0 |      5 | 0         |
| 12345 |     20 |                 1 |      5 | 0         |
| 12345 |     30 |                 5 |      5 | Something |
| 12345 |     40 |                 5 |      5 | 0         |
| 12345 |     60 |                 5 |      5 | 0         |
| 12345 |     70 |                 5 |      5 | 0         |
+-------+--------+-------------------+--------+-----------+
所需结果:

+-------+--------+-------------------+--------+--------+
| JobNo | StepNo | sumPiecesScrapped | maxSum | RowNum |
+-------+--------+-------------------+--------+--------+
| 12345 |     10 |                 0 |      5 |      0 |
| 12345 |     20 |                 1 |      5 |      0 |
| 12345 |     30 |                 5 |      5 |      3 |
| 12345 |     40 |                 5 |      5 |      4 |
| 12345 |     60 |                 5 |      5 |      5 |
| 12345 |     70 |                 5 |      5 |      6 |
+-------+--------+-------------------+--------+--------+
+-------+--------+-------------------+--------+--------+
| JobNo | StepNo | sumPiecesScrapped | maxSum | RowNum |
+-------+--------+-------------------+--------+--------+
| 12345 |     10 |                 0 |      5 |      0 |
| 12345 |     20 |                 1 |      5 |      0 |
| 12345 |     30 |                 5 |      5 |      3 |
| 12345 |     40 |                 5 |      5 |      3 |
| 12345 |     60 |                 5 |      5 |      3 |
| 12345 |     70 |                 5 |      5 |      3 |
+-------+--------+-------------------+--------+--------+
+-------+--------+-------------------+--------+-----------+
| JobNo | StepNo | sumPiecesScrapped | maxSum |  RowNum   |
+-------+--------+-------------------+--------+-----------+
| 12345 |     10 |                 0 |      5 | 0         |
| 12345 |     20 |                 1 |      5 | 0         |
| 12345 |     30 |                 5 |      5 | Something |
| 12345 |     40 |                 5 |      5 | 0         |
| 12345 |     60 |                 5 |      5 | 0         |
| 12345 |     70 |                 5 |      5 | 0         |
+-------+--------+-------------------+--------+-----------+
其他可能的结果:

+-------+--------+-------------------+--------+--------+
| JobNo | StepNo | sumPiecesScrapped | maxSum | RowNum |
+-------+--------+-------------------+--------+--------+
| 12345 |     10 |                 0 |      5 |      0 |
| 12345 |     20 |                 1 |      5 |      0 |
| 12345 |     30 |                 5 |      5 |      3 |
| 12345 |     40 |                 5 |      5 |      4 |
| 12345 |     60 |                 5 |      5 |      5 |
| 12345 |     70 |                 5 |      5 |      6 |
+-------+--------+-------------------+--------+--------+
+-------+--------+-------------------+--------+--------+
| JobNo | StepNo | sumPiecesScrapped | maxSum | RowNum |
+-------+--------+-------------------+--------+--------+
| 12345 |     10 |                 0 |      5 |      0 |
| 12345 |     20 |                 1 |      5 |      0 |
| 12345 |     30 |                 5 |      5 |      3 |
| 12345 |     40 |                 5 |      5 |      3 |
| 12345 |     60 |                 5 |      5 |      3 |
| 12345 |     70 |                 5 |      5 |      3 |
+-------+--------+-------------------+--------+--------+
+-------+--------+-------------------+--------+-----------+
| JobNo | StepNo | sumPiecesScrapped | maxSum |  RowNum   |
+-------+--------+-------------------+--------+-----------+
| 12345 |     10 |                 0 |      5 | 0         |
| 12345 |     20 |                 1 |      5 | 0         |
| 12345 |     30 |                 5 |      5 | Something |
| 12345 |     40 |                 5 |      5 | 0         |
| 12345 |     60 |                 5 |      5 | 0         |
| 12345 |     70 |                 5 |      5 | 0         |
+-------+--------+-------------------+--------+-----------+

如果没有一些表格定义和你想要实现的目标的清晰性,我就无法理解这一点。但MIN(行号)始终为1.:)你说不能使用临时表是什么意思?每个用户都可以访问
tempdb
您应该仍然能够使用类似
CREATE TABLE#temp(someColumn varchar(10))的语法
或(可选)表变量。@SeanLange在TimeTicketSet表中,JobNo是主键,每个JobNo可以有多个步骤。我试图在没有cte的情况下使用SQL来计算第一次使用SUMPEGEESSCRAPPED=maxSum的时间。@Larnu UHHHHHH我当时肯定觉得需要写访问权限。让我去做一些测试。如果我尝试了所有这些解决方法,并且可以使用tempdb,我会觉得很愚蠢。为什么没有CTE呢?对于CTE,您肯定不需要写访问权限。如果没有一些表定义和您试图实现的目标的明确性,我就无法理解这一点。但MIN(行号)始终为1.:)你说不能使用临时表是什么意思?每个用户都可以访问
tempdb
您应该仍然能够使用类似
CREATE TABLE#temp(someColumn varchar(10))的语法
或(可选)表变量。@SeanLange在TimeTicketSet表中,JobNo是主键,每个JobNo可以有多个步骤。我试图在没有cte的情况下使用SQL来计算第一次使用SUMPEGEESSCRAPPED=maxSum的时间。@Larnu UHHHHHH我当时肯定觉得需要写访问权限。让我去做一些测试。如果我尝试了所有这些解决方法,并且可以使用tempdb,我会觉得很愚蠢。为什么没有CTE呢?您肯定不需要对CTE进行写访问。