这与我的团队调查申请有关。我的数据库中有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语句中进行操作?
答案 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