对数据库中的多个表执行相同的查询

时间:2014-02-28 11:44:46

标签: sql

我有51个表(在一个数据库中),具有51个美国州的相同列和模式。我所要做的就是为所有51个表运行相同的查询。每个州的结果应该返回到具有这样的表格式的新表。

Eg. Table name : TX_EED
    New Table name :TX_EED_v0

以下是我将针对每个州运行的查询:

Select distinct a.Geoid, Lat, Long, StateCode, CountyCode, PostalCode,StrVal_SFD ,StrVal_MFD,StrVal_MH from EED2013..TX_EED a
inner join 
(Select Geoid,
SUM(case when LOBNAME ='SFD'THEN CvgAval_MinThresh else 0 end) as StrVal_SFD,
SUM(case when LOBNAME ='MFD'THEN CvgAval_MinThresh else 0 end) as StrVal_MFD,
SUM(case when LOBNAME ='MH'THEN CvgAval_MinThresh else 0 end) as StrVal_MH
FROM EED2013..TX_EED group by Geoid) b
on a.Geoid =b.Geoid-------7,473,869

1 个答案:

答案 0 :(得分:2)

如果您有51个具有相同架构的表,那么您应该只有一个表。顺便说一下,根据美国邮政局的说法,在美国 - DC,波多黎各,关岛,美属维尔京群岛以及各种军事地址都被称为“州”(并且我认为美国人口普查)。

无论如何,请创建一个视图:

create view v_AllStates as
    select ak.*
    from data_al union all
    select al.*
    from data_al union all
    . . .
    select wy.*
    from data_wy;

然后,您可以在查询中使用此视图,这可能会简化您的生活。