当前位置: 首页 > 工具软件 > seldon-server > 使用案例 >

server取出多个最小值 sql_sql-server

周志文
2023-12-01

我有一个需要帮助的编辑程序。 我已将小于10的值编辑到称为“细节已编辑”的单行中。 但是,在某些情况下,即使是编入细节的列仍小于10,我必须返回并获得下一个最小编号,以将其添加到编入中,直到大于10。下一步就是使我受挫。 在获取下一个用于编辑的最小值之后,我需要删除促成此值的行。 问题是我目前没有数据集的自然键。

正在考虑在每个子集上使用游标,但如果可以的话,希望避免这种情况。

我有2张桌子正在使用。

#WorkingTable ( DashboardYear varchar()

, Institutition varchar()

, StudentLevel varchar()

, Field varchar()

, FieldDescription varchar()

, CountOfStudents varchar()

)

#RedactedValues( DashboardYear Varchar()

, Institution Varchar()

, StudetnLevel Varchar()

, Field Varchar()

, FieldDescription Varchar()

, CountOfStudents Varchar()

)

Insert INTO #RedactedValues

SELECT DashboardYear

, Institution

, StudetnLevel

, Field

, FieldDescription

, CountOfStudents

From #WorkingTable

WHERE (CAST(CountOfStudents AS INT) < 10 and CAST(CountOfStudents AS INT) > 0)

and Field = 'XXXX'

-- Find Next Lowest Value for each group and add to redacted total

UPDATE #RedactedValues

SET CountOfStudents = CAST(r.CountOfStudents AS INT) + CAST(nextValue.nextValueToRedact AS INT)

FROM

(SELECT DashboardYear

, Institution

, StudentLevel

, MIN(CAST(CountOfStudents AS INT)) AS nextValueToRedact

FROM #WorkingTable t

WHERE CAST(t.CountOfStudents AS INT) > 0

and t.Field <> 'XXXX'

and t.fieldDescription not like '%unknown'

GROUP BY DashboardYear, Institution, StudentLevel

) nextValue

JOIN #RedactedValues r

on r.DashboardYear = nextValue.DashboardYear

and r.Institution = nextValue.Institution

and r.StudentLevel = nextValue.StudentLevel

上面的代码非常适合为每组数据查找下一个最低的整数值,并将其正确地添加到我的detailsRedacted行中。 但是我不知道如何返回到最小值的行并将其设置为0。

由于声誉限制,我无法添加图片...因此无法向您显示数据的外观。 同样因为它本质上是敏感的,所以我无法在任何地方发布数据。

查看以上数据集,明细表中的明细栏只有5个。我可以得到这组13中的值,并将其添加到明细表中。 但是由于我仅将DashboardYear,Institution和StudentLevel作为关键字,所以我无法进入Field,而该字段用于定义促成编辑的单行。

我只想做一个更新countofstudent = 0 select min(countofStudents)group by子句并完成..但这并没有解决问题。

希望有一个我还没看过的忍者把戏能对我有所帮助。 抱歉,我没有发布任何代码,但不确定是否会有所帮助。

 类似资料: