SQL Server JOIN добавляет результаты? - PullRequest
0 голосов
/ 04 марта 2011

У меня есть таблица, которая в основном содержит Person_ID, Action, TimeStamp, и с помощью Microsoft ReportBuilder у меня есть отчет, в котором приведены таблицы для каждого человека и COUNT для их действий.

Person     Action X       ActionY
1             3              5
2             0              4

Теперь мне нужно отфильтровать результаты, чтобыпоказывать только людей в определенной группе, которая определена другой таблицей, содержащей Person_ID, Group_ID.

Когда я выполняю JOIN и фильтрую результаты на основе Group_ID = x, значения очень высоки, хотя и фильтруются правильно.

Я запускаю запрос вручную в SQL Server Manager, и он возвращает одну и ту же строку несколько раз?

РЕДАКТИРОВАТЬ:

Мой текущий SQL является

select t1.personid, t1.action, t2.personid, t2.groupid 
from t1 
inner join t2 on t1.personid = t2.personid 
where t2.groupid = 1

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

1 Ответ

1 голос
/ 04 марта 2011

ОТЛИЧАЕТСЯ

ТАК.

SELECT PersonID, ActionX = COUNT(distinct varname), ActionY = SUM(distint varname)
FROM tblName1 a
INNER JOIN tblName2 b ON a.PersonID = b.PersonID
WHERE b.Group_ID = 'groupvar' 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...