2014-11-21 2 views
0

У меня есть набор данных, содержащий дату, номера клиентов и информацию о типе оплаты. Один клиент может использовать разные типы платежей в одной и той же или другой дате. Я хотел бы узнать номера клиентов клиентов, которые использовали более одного типа оплаты. Образец выглядит следующим образом:Число повторяющихся клиентов в SQL Server

Date CustNum PaymentType 
26/7/2014 1 type1 
27/7/2014 2 type1 
28/7/2014 3 type1 
29/7/2014 4 type2 
24/7/2014 2 type2 
24/7/2014 4 type2 
25/7/2014 6 type3 
30/7/2014 9 type3 
2/7/2014 1 type3 
26/7/2014 4 type4 
2/7/2014 2 type4 
3/7/2014 6 type4 
26/7/2014 3 type5 
26/7/2014 4 type5 

В приведенном выше наборе данных, можно увидеть, что несколько клиентов использовали несколько типов оплаты. Я хотел бы иметь номера клиентов всех этих клиентов, а также тип оплаты, который они использовали, и количество транзакций для каждого типа оплаты.

Вот желаемый результат:

PaymentType Custnum NumTransactions 
type1 1 1 
type3 1 1 
type1 2 1 
type2 2 1 
type4 2 1 
type1 3 1 
type5 3 1 
type2 4 2 
type4 4 1 
type5 4 1 

Любая помощь в этом отношении была бы оценена.

+0

Вашей формулировка, кажется, путает человек, которые хотят, чтобы ответить на ваш вопрос. Можете ли вы опубликовать желаемый результат в своем вопросе, чтобы избежать недоразумений? – Lamak

+0

Спасибо за предложение, я обновил вопрос. – Patthebug

ответ

1

Теперь, когда вы обновили свой вопрос, вот так:

SELECT PaymentType, 
     CustNum, 
     COUNT(*) NumTransactions 
FROM dbo.YourTable A 
WHERE EXISTS(SELECT 1 
      FROM dbo.YourTable 
      WHERE CustNum = A.CustNum 
      GROUP BY CustNum 
      HAVING MIN(PaymentType) <> MAX(PaymentType)) 
GROUP BY PaymentType, 
     CustNum 
+0

Отлично, это похоже на работу. Большое спасибо за вашу помощь. – Patthebug

1

попробовать это:

Для

числа клиентов, которые использовали более чем один тип оплаты.

select COUNT(PaymentType) CountOfCust,PaymentType,CustNum from Customers 
Having COUNT(PaymentType)>1 
GRPUP BY PaymentType,CustNum 
Смежные вопросы