SQL-запрос для всего - PullRequest
       8

SQL-запрос для всего

0 голосов
/ 04 марта 2012

простой вопрос для всех вас, гуру SQL: у меня есть следующие структуры таблиц (не включая нерелевантные столбцы);

Area -- AreaID, AreaName
District -- DistrictID, DistrictName, AreaID
Office -- OfficeID, OfficeName, DistrictID
Customer -- CustomerID, OfficeID

Мне нужно иметь возможность получить количество клиентов в офисах, сгруппированных по районам, а затем по округам, учитывая AreaID в качестве входного параметра;

DistrictID1 DistrictName1 Count_of_customers
DistrictID2 DistrictName1 Count_of_customers
...

и количество клиентов, сгруппированных по AreaID (без входного параметра)

Area1 Count_of_customers
Area2 Count_of_customers
....

1 Ответ

3 голосов
/ 04 марта 2012

Такой запрос должен сработать

Select D.DistrictID, D.DistrictName, Count(*)
FROM District AS D
INNER JOIN Office AS O
ON D.DistrictID = O.DistrictID
INNER JOIN Customers AS C
ON O.OfficeID = C.OfficeID
WHERE D.AreaID = 1234
GROUP BY D.DistrictID, D.DistrictName

Для подсчета клиентов в этом районе вы можете сделать следующее

Select A.AreaID,A.AreaName, Count(*)
FROM Area AS A
INNER JOIN District AS D
ON A.AreaID = D.AreaID
INNER JOIN Office AS O
ON D.DistrictID = O.DistrictID
INNER JOIN Customers AS C
ON O.OfficeID = C.OfficeID
GROUP BY A.AreaID,A.AreaName
...