Sql 我不能按顺序计算一个值和的最小值
我在SQLServer2005工作 我不知道如何得到它返回的列的最小值。我试过不同的方法,但没有找到解决办法。谢谢Sql 我不能按顺序计算一个值和的最小值,sql,sql-server,Sql,Sql Server,我在SQLServer2005工作 我不知道如何得到它返回的列的最小值。我试过不同的方法,但没有找到解决办法。谢谢 select sum(c.duration) from song c , disc d, have e where d.cod = e.cod AND e.can = c.cod group by d.name 表: song have disc -------- ------- ----------- cod(int) ca
select sum(c.duration)
from song c , disc d, have e
where d.cod = e.cod AND e.can = c.cod
group by d.name
表:
song have disc
-------- ------- -----------
cod(int) can(int) cod
title cod name
duration date
如果你只需要求和中的最小值,那么简单的排序就可以了
select top 1 sum(c.duration) as SumDuration
from song c
inner join have e on e.can = c.cod
inner join disc d on d.cod = e.cod
group by d.name
order by SumDuration asc
如果您想输出所有具有该最小值的汇总记录,那么使用CTE应该是可行的
; with
CTE as (
select d.name, sum(c.duration) as SumDuration
from song c
inner join have e on e.can = c.cod
inner join disc d on d.cod = e.cod
group by d.name
)
select name, SumDuration
from CTE
where SumDuration = (
select min(SumDuration)
from CTE
)
这是一个很好的起点。暗示将d.name添加到select中,将其包装在CTE中,然后从CTE中选择min或使用子查询。我已尝试过此操作,但未返回任何内容,我不知道如何继续:选择d.name,minc.duration from song c,disc d,让e其中d.cod=e.cod和e.can=c.cod和c.duration=按d.name从歌曲组中选择sumduration但如果有多个具有该最小值?@DavidArguedas我已更新了答案以考虑此结果。看起来不错。给我一个错误:Msg。170,第15级,状态1,第1行第1行:“;”附近的语法不正确。很抱歉给您带来不便。@DavidArguedas请尝试删除分号