SELECT ORG.ORG_ID AS ID, NVL(COUNT(NL.INFO_ID),0) AS STATISTIC
FROM QDWEB_NEWS_LIST NL 
JOIN QDWEB_ORGANIZATION ORG ON 
ORG.ORG_ID = NL.CHILDSITE_ID GROUP BY ORG.ORG_ID我想统计出各个单位的发布信息数,QDWEB_ORGANIZATION存的是单位信息,QDWEB_NEWS_LIST存的是发布信息.
现在这个语句可以统计出发过信息的单位的数量,但是现在我想把没发过信息的单位也显示出来,显示为0.请问这个
语句该怎么写

解决方案 »

  1.   

    我觉得应该将 QDWEB_ORGANIZATION 作为主表,这样写试试行不行
    SELECT ORG.ORG_ID AS ID,
     CASE WHEN NL.CHILDSITE_ID IS NULL THEN
        0
     ELSE
        COUNT(NL.INFO_ID)
     END AS STATISTIC
    FROM QDWEB_ORGANIZATION ORG
    JOIN QDWEB_NEWS_LIST NL ON
    ORG.ORG_ID = NL.CHILDSITE_ID GROUP BY ORG.ORG_ID 
      

  2.   

    试试这个吧!
    Select Org.Org_Id As Id, Nvl(Count(Nl.Info_Id), 0) As Statistic
      From Qdweb_News_List Nl, Qdweb_Organization Org
     Where Org.Org_Id = Nl.Childsite_Id(+)
     Group By Org.Org_Id
      

  3.   

    SELECT ORG.ORG_ID AS ID, NVL(count(NL.INFO_ID),0) AS STATISTIC 
    FROM QDWEB_NEWS_LIST NL 
    JOIN QDWEB_ORGANIZATION ORG ON 
    ORG.ORG_ID = NL.CHILDSITE_ID