请各位大师帮忙写一条SQL语句,问题描述:有两个表,其中一个表是Site表,结构如下
sID,sName,sDomain,另一个表是Article表,它的结构如下
aID,aName,aDomain,aActive(是一个BIT类型的数据)这两个表是通过Domain来关联的,现在我想写一条语句来统计Site表中Active状态的数据,其形式如下sName(站点名称) sDomain(域名) aActived Records (激活记录)
==============================================================================
Sina www.sina.com.cn 1500
163 www.163.com 1500
Baidu www.baidu.com 0
SoSo www.soso.com 0
我现在写了一条语句,但是不能完全统计,它只能统计Article表与Site表共有的数据,我的要求是如果Site表中没有的域名,它的aActived Records 结果以0来表示,就像上面的BaiDu,SoSo这两行也要显示出来,而我写的SQL语句这两行出不来。小弟刚学SQL没多久,写了很久也搞不定,肯定各位大师帮帮忙,小弟将感激不尽.
sID,sName,sDomain,另一个表是Article表,它的结构如下
aID,aName,aDomain,aActive(是一个BIT类型的数据)这两个表是通过Domain来关联的,现在我想写一条语句来统计Site表中Active状态的数据,其形式如下sName(站点名称) sDomain(域名) aActived Records (激活记录)
==============================================================================
Sina www.sina.com.cn 1500
163 www.163.com 1500
Baidu www.baidu.com 0
SoSo www.soso.com 0
我现在写了一条语句,但是不能完全统计,它只能统计Article表与Site表共有的数据,我的要求是如果Site表中没有的域名,它的aActived Records 结果以0来表示,就像上面的BaiDu,SoSo这两行也要显示出来,而我写的SQL语句这两行出不来。小弟刚学SQL没多久,写了很久也搞不定,肯定各位大师帮帮忙,小弟将感激不尽.
from Site a left join Article b on a.sDomain=b.sDomain
a.sname,a.sdomain,isnull(count(b.aActive),0) as [aActived Records]
from
site a left join Article b
on
a.sDomain=b.aDomain
where
b.aActive=1 ---1表示已激活
group by
a.sname,a.sdomain
select a.sName,a.sDomain,b.aActive
from Site
left join Article
on a.sDomain=b.sDomain
select a.sName,a.sDomain,[aActived Records]=sum(b.aActive)
from Site a left join Article b on a.sDomain=b.aDomain
group by a.sName,a.sDomain