Запрос для подсчета данных, где встречаются определенные условия - PullRequest
0 голосов
/ 25 февраля 2019

У меня проблема с подсчетом c1, где у них есть a1 и a2, и подсчет только a1 и a2.

C1 | C2
_______ 
a  | a1
a  | a2
b  | a1
b  | a2
c  | a1
d  | a2

Результат.

a1 | a1 & a2 | a2       ---> from C2
________________
1 |     2     | 1         ---> from C1

Я хочу посчитать, где значение изc1 имеет значение 2 от c2.

1 Ответ

0 голосов
/ 25 февраля 2019

Пожалуйста, попробуйте следующий запрос.

   select [a1], [a1&a2],[a2] 
from
(
  SELECT DISTINCT t2.c2 AS C2,COUNT(*) as col FROM Table1 t1 
inner join Table1 t2 ON  t1.c1=t2.c1 GROUP BY t2.c2,t2.c1 HAVING COUNT(*)<2 
UNION ALL
select distinct
   LTRIM(REPLACE(REPLACE(stuff((SELECT distinct '& ' + cast(c2 as varchar(10))
           FROM Table1 t2
           where t2.c1 = t1.c1
           FOR XML PATH('')),1,1,''),'&amp; ','&'),'amp;','')) AS C2,Count(*) as col
from Table1 t1 group by c1 HAVING COUNT(*)>1  
) d
pivot
(
  max(col)
  for c2 in ([a1],[a1&a2] ,[a2])
) piv;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...