Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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,我在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

我在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)     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请尝试删除分号