2016-10-07 6 views
0

У меня есть большой стол с большим количеством данных, и я пытаюсь найти лучший способ сделать что-то, что кажется немного сложным (для меня, имея мой опыт).SQL Select Count/Distinct

У меня есть таблица с данными, который выглядит следующим образом ...

Tbl1 

IDClient    ApptDate   ApptType 
788-77    7/1/2016   1 
789-78    7/21/2016   1 
688-12    7/15/2016   2 
459-48    7/20/2016   1 
788-77    7/2/2016   1 
788-77    7/19/2016   2 
789-78    7/29/2016   1 

Так как вы можете видеть, здесь есть несколько клиентов с ApptDate и ApptType < - я включаю эту колонку, потому что это используется в моих критериях.

Вот мой dilemna ...

Клиент 788-77 имеет 3 Appt в июле (июль и appttype в (1,2) мои критерии, поэтому все записи в представленной таблице, применяются). Клиент 789-78 имеет 2 апплета. Я пытаюсь найти способ показать DISTINCT IDClient и сколько назначений у них было между «7/1/2016» и «7/31/2016»

Желаемый Конец:

IDClient   ApptCount 
788-77   3 
789-78   2 
459-48   1 
688-12   1 

Что-то вроде этого .... (я знаю, что это разделка)

Select Distinct IDClient, Count(IdClient)? 
from Tbl1 
where apptType in (1,2) and apptDate between '7/1/2016' and '7/31/2016' 

ответ

4

вы можете попробовать это group by?

Select IDClient, Count(IdClient) 
from Tbl1 
where apptType in (1,2) and apptDate between '7/1/2016' and '7/31/2016' 
group by IDClient 
+1

Это сделал это, я был близок! – BobSki

2
SELECT IDClient, COUNT(IDClient) AS ApptCount 
FROM Tbl1 
WHERE ApptDate BETWEEN '1996-07-01' AND '1996-07-31' 
GROUP BY IDClient 
+0

Что делать, если я хочу отображать только клиентов с 3 appts? – BobSki

+2

Извините, я пропустил это! Вы можете добавить предложение having HAVING COUNT (IDClient) = 3 – Elaina

Смежные вопросы