请各位大师帮忙写一条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没多久,写了很久也搞不定,肯定各位大师帮帮忙,小弟将感激不尽.

解决方案 »

  1.   

    select *,aActived =isnull(aActived,0)
    from Site a left join Article b on a.sDomain=b.sDomain
      

  2.   

    select
       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
      

  3.   


    select a.sName,a.sDomain,b.aActive
    from Site 
    left join Article
    on a.sDomain=b.sDomain
      

  4.   


    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
      

  5.   

    left join或者right join,不要用inner join。