分组计数值

时间:2018-12-25 05:08:48

标签: sql-server

enter image description here

我想获取财产和建筑物的数量,并且建筑物与财产相关联。下面是我尝试过的查询:

select
    PT.PropertyTypeName,
    Count(PropertyID) as ProperyCount,
    Isnull((Select count(B.BuildingID)
            from Building B
            join Property P1
                on B.PropertyID=P1.PropertyID
            where B.PropertyID =P.PropertyID), 0) as BuildingsCount
from Property P
join PropertyType PT
    on PT.PropertyTypeID = P.PropertyTypeID
left join AssetToFund AF
    on AF.AssetID = P.AssetID
left join Fund F
    on F.FundID = AF.FundID
left join Asset A
    on A.AssetID = P.AssetID
left join Client C
    on C.ClientID = F.ClientID
where C.ClientId=10000001
group by PT.PropertyTypeName,P.PropertyID

我希望类型的值组

我想将属性类型名称不重复的计数分组

2 个答案:

答案 0 :(得分:0)

对英语不好表示歉意。

尝试在此子查询上使用SUM()函数

  

返回表达式中所有值的总和,或仅返回DISTINCT值。 SUM只能与数字列一起使用。空值将被忽略。   MSDN

SUM(Select count(B.BuildingID)
from Building B
join Property P1
on B.PropertyID=P1.PropertyID
where B.PropertyID = P.PropertyID)

答案 1 :(得分:0)

使用returnDate: Observable<string>时,它将按您在getDates(): Observable<string> { return new Observable((observer) => { observer.next(moment(this.data.Date).format('DD MMM'));} }); } 语句中编写的列对数据进行分组。您已写过:

GROUP BY

这意味着SQL Engine将获得GROUP BY的所有唯一组合。但是,您只需要唯一的GROUP BY PT.PropertyTypeName,P.PropertyID` 。因此,只需将此字段写入PropertyTypeName, PropertyID语句:

PropertyTypeName

因此完整的查询将如下所示:

GROUP BY