SQL - 引用3个表

时间:2014-04-04 01:32:56

标签: sql

这与我的团队调查申请有关。我的数据库中有3个与此问题相关的表。

如果数据库没有完全正常化,我很抱歉。

TBL_CHURCH columns:

1 FAM_CHURCH_SACRMNT_NUM (Primary Key) Int(15)
2 RSPONDNT_NUM
3 SURVYR_NUM
4 QN_NUMBER
5 CHRCHFAMLY_NAME
6 CHRCHFAMLY_ISBAPTIZED

 Sample row based on order of columns above:
         1            2         3        4           5               6
      6422164     76826499    5712      362    Serio Tecson Jr.     Yes

TBL_INTRVW columns:

1 QN_NUMBR (Primary Key)
2 SURVYR_NUM
3 ZONE_NUM
4 RSPONDNT_NUM

  Sample row based on order of columns above:
         1            2           3           4
        362          5712         11        76826499

TBL_AREA columns:
1 BRGY_ZONE_NUM (Primary Key)
2 BRGY_CODE

  Sample row based on order of columns above:
         1            2
        11           2A
        21           2A
        31           2A

字段CRCHFAMLY_ISBAPTIZED只有两个值。 “是”或“否”并且每行具有引用TBL_INTRVW的QN_NUMBR值,并且TBL_INTRVW上的每个QN_NUMBR具有引用TBL_AREA的唯一ZONE_NUM并且ZONE_NUM具有对应的BRGY_CODE。每个BRGY_CODE至少有2个ZONE_NUM值

我的问题是,我想计算在给定区域内受洗的人数。

或多或少的输出应如下所示: (输出从3个不同的ZONE_NUM收集)

 Zone Name    Num of People Baptized
   2A                   20

我在SQL语句中使用了什么麻烦。我应该在INNER JOIN中使用WHERE吗?我如何在SELECT语句中进行操作?

1 个答案:

答案 0 :(得分:1)

SELECT c.BRGY_ZONE_NUM,count(a.CHRCHFAMLY_ISBAPTIZED) as [Num of People Baptized]
from TBL_CHURCH a
left join 
TBL_INTRVW b
on a.QN_NUMBER=b.QN_NUMBER
left join 
TBL_AREA c
on b.ZONE_NUM=cRGY_ZONE_NUM
where a.CHRCHFAMLY_ISBAPTIZED='Yes'
group by  c.BRGY_ZONE_NUM

我在三个表上看不到Zone Name列,所以我使用了BRGY ZONE NUM