Основываясь на результатах запроса SQL cte, Подсчитайте общее количество нет. Клиентов, оплативших рассрочку платежа
ниже запрос дает мне идентификатор клиента. чего я хочу, так это: я хочу подсчитать общее количество клиентов, которые заплатили рассрочку с этих идентификаторов. есть еще одна таблица, называемая рассрочкой, есть столбец состояния со значениями типа "оплачено" и "не оплачено". мы должны считать из таблицы рассрочки.
declare @nodeid int = '1'; with cte as ( select cust_ID, name,null lnode, null rnode from user_detail where cust_ID = @nodeid union all select t.cust_ID,t.name, ISNULL(cte.lnode, CASE WHEN t.joinside = 0 THEN 1 ELSE 0 END) lnode, ISNULL(cte.rnode, CASE WHEN t.joinside = 1 THEN 1 ELSE 0 END) rnode from user_detail t inner join cte on cte.cust_ID = t.parentid ) select cust_id from cte where rnode='0' option (maxrecursion 0)
Что я уже пробовал:
declare @nodeid int = '1'; with cte as ( select cust_ID, name,null lnode, null rnode from user_detail where cust_ID = @nodeid union all select t.cust_ID,t.name, ISNULL(cte.lnode, CASE WHEN t.joinside = 0 THEN 1 ELSE 0 END) lnode, ISNULL(cte.rnode, CASE WHEN t.joinside = 1 THEN 1 ELSE 0 END) rnode from user_detail t inner join cte on cte.cust_ID = t.parentid ) select Count(lnode) total_left,Count(status) total_paid from cte c inner join installments i on c.cust_id=i.cust_id where rnode='0' and status='paid' option (maxrecursion 0)
но этот запрос не дает точных результатов.