Sql 如果每个帐号有3个或3个以上,则计算分录(类型)的数量,don';如果有其他类型的分录,则不包括账号
每个帐号在我使用的每个表中都有多个条目。 如果有3个或更多lt.type为46的条目,我想返回帐户上跟踪记录(lt.type)的条目数。如果帐户有lt.type 36的条目,我也不想在结果中包含帐号Sql 如果每个帐号有3个或3个以上,则计算分录(类型)的数量,don';如果有其他类型的分录,则不包括账号,sql,sql-server,Sql,Sql Server,每个帐号在我使用的每个表中都有多个条目。 如果有3个或更多lt.type为46的条目,我想返回帐户上跟踪记录(lt.type)的条目数。如果帐户有lt.type 36的条目,我也不想在结果中包含帐号 SELECT a.ACCOUNTNUMBER AS [Account Number] , CONCAT(n.FIRST, ' ', n.MIDDLE, ' ', n.LAST) AS [Member Name] , l.id AS [Loan ID] , COUNT(lt.t
SELECT a.ACCOUNTNUMBER AS [Account Number]
, CONCAT(n.FIRST, ' ', n.MIDDLE, ' ', n.LAST) AS [Member Name]
, l.id AS [Loan ID]
, COUNT(lt.type) as [Number of Tracking Records]
, n.EMAIL AS [Email]
, n.HOMEPHONE AS [Phone Number]
FROM dbo.account a
INNER JOIN dbo.LOAN l
ON a.ACCOUNTNUMBER = l.PARENTACCOUNT
INNER JOIN dbo.LOANTRACKING lt
ON l.PARENTACCOUNT = lt.PARENTACCOUNT
AND l.ID = lt.ID
INNER JOIN dbo.NAME n
ON a.ACCOUNTNUMBER = n.PARENTACCOUNT
WHERE lt.type = 46
AND l.ProcessDate = CONVERT(VARCHAR(8), dateadd(day,-1, getdate()), 112)
AND lt.ProcessDate = CONVERT(VARCHAR(8), dateadd(day,-1, getdate()),
112)
AND a.CLOSEDATE IS NULL
AND lt.EXPIREDATE IS NULL
GROUP BY a.ACCOUNTNUMBER, n.first, n.middle, n.LAST, lt.type, l.id, n.EMAIL,
n.HOMEPHONE
HAVING COUNT(lt.type) >= 3
ORDER BY a.ACCOUNTNUMBER
现在,我的查询正在计算帐户拥有的lt.type(跟踪记录)的条目总数。如果帐户有3个或更多的lt.type 46,我需要显示帐户对lt.type 46的lt.type(跟踪记录)的金额条目,如果lt.type为36,则不将帐户包括在结果中
示例数据、所需结果和简化的查询将非常有用。当WHERE条件为lt.type=46时,将排除值不为46的记录,包括lt.type=36。左连接的目的是什么?如果没有样本数据,很难给出更好的答案。我已经排除了左连接并添加了一些样本数据。请将代码和数据作为文本而不是图像发布。