It would be something like this:
DECLARE @SALE TABLE (SELLER VARCHAR(30), [DATE] DATETIME, CLIENT VARCHAR(30))
INSERT INTO @SALE (SELLER, [DATE], CLIENT )
VALUES('JHON','2014-05-01','A'), ('JHON','2014-05-07','B'), ('JHON','2014-05-09','C'), ('JHON','2014-05-14','E'), ('JHON','2014-05-15','A'), ('JHON','2014-05-18','D'),
('MATH','2014-05-20','A'), ('MATH','2014-05-21','B'), ('MATH','2014-05-22','C'), ('MATH','2014-05-25','D'), ('MATH','2014-05-28','C'), ('MATH','2014-05-28','C'),
('PETER','2014-05-29','A'), ('PETER','2014-05-29','B'), ('PETER','2014-05-30','D'), ('PETER','2014-05-30','D'), ('PETER','2014-05-30','E'), ('PETER','2014-05-30','A')
SELECT *
FROM @SALE
SELECT SELLER, [01], [02], [03]
FROM (
SELECT SELLER, Period, COUNT(DISTINCT CLIENT) AS NOFClients
FROM (
SELECT SELLER, [Period] = CASE WHEN [DATE] BETWEEN '2014-05-01' AND '2014-05-13' THEN '01'
WHEN [DATE] BETWEEN '2014-05-14' AND '2014-05-22' THEN '02'
WHEN [DATE] BETWEEN '2014-05-23' AND '2014-05-30' THEN '03'
END, CLIENT
FROM @SALE
) AS T
WHERE SELLER IN ('JHON', 'MATH', 'PETER')
GROUP BY SELLER, [Period]
) AS DT
PIVOT(SUM(NOFClients) FOR [Period] IN ([01], [02], [03])) AS PT
Results:
JHON 2014-05-01 00:00:00.000 A
JHON 2014-05-07 00:00:00.000 B
JHON 2014-05-09 00:00:00.000 C
JHON 2014-05-14 00:00:00.000 E
JHON 2014-05-15 00:00:00.000 A
JHON 2014-05-18 00:00:00.000 D
MATH 2014-05-20 00:00:00.000 A
MATH 2014-05-21 00:00:00.000 B
MATH 2014-05-22 00:00:00.000 C
MATH 2014-05-25 00:00:00.000 D
MATH 2014-05-28 00:00:00.000 C
MATH 2014-05-28 00:00:00.000 C
PETER 2014-05-29 00:00:00.000 A
PETER 2014-05-29 00:00:00.000 B
PETER 2014-05-30 00:00:00.000 D
PETER 2014-05-30 00:00:00.000 D
PETER 2014-05-30 00:00:00.000 E
PETER 2014-05-30 00:00:00.000 A
JHON 3 3 NULL
MATH NULL 3 2
PETER NULL NULL 4
For further information, please see:
CASE[
^]
PIVOT and UNPIVOT[
^]
Aggregate Functions (Transact-SQL)[
^]