Sql MS Access:如何按第一列分组-对某些列求和,同时保持其他列不变

Sql MS Access:如何按第一列分组-对某些列求和,同时保持其他列不变,sql,ms-access,ms-access-2007,ms-access-2010,Sql,Ms Access,Ms Access 2007,Ms Access 2010,我有如下数据: ID | Year | State | Cost ----+-----------+-----------+----------- 1 | 2012 | CA | 10 2 | 2009 | FL | 90 3 | 2005 | MA | 50 2 | 2009 | FL | 75 1 | 2012 | CA

我有如下数据:

ID  |   Year    |   State   |   Cost
----+-----------+-----------+-----------
1   |   2012    |   CA      |   10
2   |   2009    |   FL      |   90  
3   |   2005    |   MA      |   50
2   |   2009    |   FL      |   75
1   |   2012    |   CA      |   110
我需要它看起来像:

ID  |   Year    |   State   |   Cost
----+-----------+-----------+-----------
1   |   2012    |   CA      |   120
2   |   2009    |   FL      |   165  
3   |   2005    |   MA      |   50
因此,我需要年份保持不变,州保持不变,但每个ID的成本要加起来


我知道如何做总结,但我不知道如何使年份和状态保持不变

使用
分组依据
总计
查询。大概

SELECT 
    ID, 
    [Year], 
    State, 
    Sum(Cost) As TotalCost
FROM 
    yourTable
GROUP BY
    ID,
    [Year],
    State;

groupby
子句根据公共信息对记录进行分组。
Sum
将指定的列相加,为您提供正确的信息

Paul,你忘了
Group By
@PaulFrancis如果我有60列,其中一半我想求和,一半我想不去管。我必须这样把每一个都写出来吗?还是有更快的办法?另外,为什么只有一些列名周围才有方括号呢?您可以对需要的列进行分组-是的。如果其他列未进入计算,则不应将它们添加到查询中。如果你这样做了,数据将不准确甚至不正确。然而,如果您只想显示而不想求和,这将是一个非常棘手的问题。关于方括号,
Year
是Access中的关键字。因此,这样使用它会导致问题。请使用GUI设计器。拉入表格,双击表格的标题以使用所有字段,删除不需要的字段。然后按sigma符号,所有字段将更改为Group By。将字段成本和其他字段更改为总和。拯救