这是我获取总数的查询。
SELECT
MemberShipMaster.Id,
MemberShipMaster.Name,
TotalCount =
(
SELECT
ISNULL(COUNT(MemberPortfolio.Id), 0) AS total
FROM
JFPMembers
INNER JOIN MemberPortfolio
ON JFPMembers.MemberID = MemberPortfolio.MemberId
WHERE
JFPMembers.MembershipType = MemberShipMaster.Id
AND JFPMembers.IsActive = 1
AND MemberPortfolio.IsActive = 1
)
FROM
MemberShipMaster
Left JOIN JFPMembers
ON MemberShipMaster.Id = JFPMembers.MembershipType
WHERE
MemberShipMaster.Id <> 6
GROUP BY
MemberShipMaster.Id,
MemberShipMaster.Name
Order by
MemberShipMaster.Name
以下是我的表格架构
SELECT [MemberID] -- PK
,[MembershipType] --FK , table [MemberShipMaster]
FROM JFPMembers
SELECT [Id] -- PK
,[MemberId] -- FK OF Table JFPMembers
FROM MemberPortfolio
SELECT [Id] --PK
,[Name]
FROM MemberShipMaster
我需要的是会员资产组合的总数,按MembershipType,即我的关系是这样的,JFPMembers是持有会员信息的主要表格。有3类成员,Premium,Corporate和General。这三种类型存储在MemberShipMaster中。 Ids分别为3,4和5。还有一个用于持有投资组合的表,作为MemberId来关联其各自的成员。
但是我在MemberShipMaster.Id上遇到了一些多值或引用错误。请帮帮我......
答案 0 :(得分:0)
新守则:
SELECT abb1.Id, abb1.Name,
TotalCount =
(SELECT
ISNULL(COUNT(abb3.Id), 0) AS total
FROM
JFPMembers as abb4
INNER JOIN MemberPortfolio as abb3
ON abb4.MemberID = abb3.MemberId
WHERE
abb4.MembershipType = abb1.Id
AND abb4.IsActive = 1
AND abb3.IsActive = 1)
FROM
MembershipMaster as abb1
Left JOIN JFPMembers as abb2
ON abb1.Id = abb2.MembershipType
WHERE
abb1.Id <> 6
GROUP BY
abb1.Id,
abb1.Name
Order by
abb1.Name