У меня есть следующие две таблицы в БД SQL Server 2005
2- «UserInfomration» ---> (идентификатор (авто), имя, пол (бит))
1- «Конкуренты» ---> (Id (авто), UserID (FK из UserInformation.ID), Status (tinyint)
я хочу сделать хранимую процедуру, которая возвращает данные следующим образом
Статус - Мужской счет - Женский счет
1 45 15
2 10 50
3 20 60
Так кто-нибудь может поделиться со мной лучшим решением для этого
Мое решение было следующим:
SELECT
Competitors.Status,
COUNT(Competitors.ID) AS MaleCount ,
(
SELECT Count(C.ID)
FROM Competitors as C , UserInfomration as UI
WHERE UI.UserID = C.UserID AND UI.UserGender = 0 AND C.Status = Competitors.Status
) as FemaleCount ,
(MaleCount + FemaleCount) as total
FROM
UserInfomration LEFT OUTER JOIN
Competitors ON UserInfomration.UserID = ISEFCompetitors.UserID
GROUP BY Competitors.Status, UserInfomration.UserGender
HAVING (UserInfomration.UserGender = 1)
ORDER BY Competitors.Status
Заранее благодарим за ожидаемое сотрудничество