求和的访问查询创建

时间:2013-10-16 19:29:11

标签: ms-access-2010

所以我有一个关于对我的数据进行排序的问题,让我们说为了论证,我在过去3年的每个月都有多个表访问一个,所以让我们说36个表,每个表都有一个名为pet的Colum和一个列叫名字(人名)。宠物可以是猫,狗或鱼。我想制作一个Cross Query,通过每个表找到所有不同的人名,然后计算宠物有多少次“Cat”,“Dog”或“Fish”。我想知道如何去做这件事,也可以深入了解一下是否有人说简有3只猫和2只狗,其中表示“狗”的来自哪个表和“猫”来自哪里?

1 个答案:

答案 0 :(得分:0)

以下是我将如何处理这样的事情。

创建一个将所有表连接在一起的视图。该视图将采用

的形式
SELECT "TB1" as TableName, name, pet
FROM Table1

UNION ALL

SELECT "TB2" as TableName, Name, pet
FROM Table2

UNION ALL ...

继续将所有表联合在一起。然后,您可以针对您的视图编写查询。

这样的东西
SELECT Name, Pet, Count(Pet), TableName
FROM View
Group BY Name, Pet, TableName

让我加上观察,这样的设计将成为维护的噩梦。最好将一个表放在一个带有日期列的表中,这样就不必加入多个表。下个月,您必须更新视图以包含新表。