2013-07-11 38 views
0

我想知道是否有办法在没有编写VBA代码的情况下在Microsoft Access(2010)中执行此结果查询。查询以基于汇总值列表选择行

我有一个数据表是这样的(多个字段,但只表明算的):

Customer ID  City Name 
1     Chicago 
2     Chicago 
3     New York 
4     San Antonio 
5     Seattle 
6     Seattle 
7     Walbash 
8     Walbash 

我想只选择每个城市一行。例如,我想为芝加哥选择第1行或第2行。

得到的结果将类似于此

Customer ID  City Name 
1     Chicago 
3     New York 
4     San Antonio 
etc 

回答

0

尝试是这样的:

select * 
from Table1 t1 
where t1.CustomerID = (select min(t2.CustomerID) from table1 t2 where t1.CityName = t2.CityName) 
order by t1.CustomerID 
+0

这对我有用。但是,它运行了很长时间。所以我把它分成两个不同的任务。第一项任务创建了CITY列表和最小CustomerID的摘要。然后在我的原始表格中添加一个“选择字段”列。然后,我根据汇总表(将City加入并将(min)CustomerID更改为CustomerID)更新了选择字段。这很好。 – user1641439

0
SELECT First(Table1.CustomerID) AS FirstOfCustomerID, Table1.CityName 
FROM Table1 
GROUP BY Table1.CityName; 

的其他选项示例使用First()Min()Max()

编辑:

创建上面的查询,然后做一个加盟与您的原始表格来选择记录。我叫上面的查询Q1和原来的表是Table1

SELECT Q1.FirstOfCustomerID, Q1.CityName, Table1.Data 
FROM Q1 INNER JOIN Table1 ON Q1.FirstOfCustomerID = Table1.CustomerID; 
+0

感谢reply.I明白怎么做分组。我只需要从每个组中选择一条记录。我可以在一个查询中做到这一点,或分解它并标记每个组的第一条记录。 – user1641439

+0

我不认为我理解。您需要更改原始问题以帮助我更好地理解,因为这完全符合您在问题中所描述的内容 – ashareef

+0

啊我想我明白您的意思,您有其他字段是唯一的,并且希望选择记录。我编辑了我的答案。 – ashareef