如何在数据库SQL Server中选择最后8行和求和其他列



我是新手。请帮我解决这个问题。我想从数据库中选择最后8行和其他列。我有列周、日期和值1。我想按周对value1组求和,并且只显示最后8条记录。我可以显示最近8周的情况,但无法对值求和1。这是我显示本周的代码:

SELECT week FROM 
(SELECT Top 7 week 
 FROM tbData 
 Group By week 
 ORDER BY week DESC) as LW 
ORDER BY week ASC

它给了我最后8周的时间,然后我把它改成这个来显示总和(值1):

SELECT SUM(Value1) as TValue1, week 
FROM 
(SELECT Top 7 week 
 FROM tbData 
 Group By week 
 ORDER BY week DESC) as LW 
ORDER BY week ASC"

但它给了我错误列名"Value1"无效。

我该怎么做才能把它做好。。。提前感谢。。。。

子查询中没有Value1列。我想你想做这样的事情:

SELECT SUM(Value1) as TValue1, week 
FROM 
(SELECT Top 7 week, sum(Value1) as Value1
 FROM tbData 
 Group By week 
 ORDER BY week DESC) as LW 
ORDER BY week ASC

尝试这个

 SELECT SUM(Value1) as TValue1, week 
    FROM 
    (SELECT Top 7 week , sum(Value1) Value1
     FROM tbData 
     Group By week 
     ORDER BY week DESC) as LW 
    ORDER BY week ASC

并将其放在最后:>"<

编辑:

单独尝试子查询:

SELECT Top 7 
 week
 ,sum(Value1) Value1
FROM 
 tbData 
GROUP BY 
 week 
ORDER BY 
 week DESC

将其复制粘贴到查询编辑器中。

如果您得到一个错误"invalidcolumname",那么很可能是列"Value1"不存在。请确保拼写正确,并且您没有试图使用别名。

最新更新