Подвыбор в SQL Server

Я хотел бы создать подзаголовок для столбца с определенным счетчиком.

Обычно это не проблема, но в этом случае мне нужен идентификатор для текущего столбца в качестве фильтра.

Например, у меня есть стол. Rooms :

 RoomID Name --------------- 1 Room 1 2 Room 2 3 Room 3 

Во всех номерах есть клиенты, например

 ClientID RoomID ClientName ------------------------------- 1 1 Client1 2 1 Client2 3 2 Client3 

Например, есть таблица ClientUsage , например

 ID ClientID StateID ------------------- 1 1 1 2 2 1 3 3 0 

Теперь я хочу показать все комнаты, включая количество всех клиентов (например, StateID = 1 )

Результат должен быть:

 ID, RoomID, CountOfClients, CountOfClientsWithStateID = 1 

Первые 3 вещи довольно просты, используя это:

 SELECT ID, Name, (SELECT COUNT(*) AS Count FROM Client WHERE (RoomID = T1.ID)) AS ClientCount FROM Room AS T1 

Но теперь мне нужен Client.ID качестве ссылки для получения состояния – любые идеи, как это решить?

Попытка с чем-то подобным, но это не работает:

 SELECT ID, Name, (SELECT COUNT(*) AS Count FROM Client AS T2 WHERE (RoomID = T1.ID)) AS ClientCount, (SELECT COUNT(*) AS Count FROM ClientUsage WHERE (ClientUsage.ClientID = T2.ID) AND (StateID = 1)) AS ClientFreeCount FROM Room AS T1 

заранее спасибо

Вы можете использовать что-то вроде:

 SELECT ID, Name, (SELECT COUNT(*) AS Count FROM Client AS T2 WHERE (RoomID = T1.ID)) AS ClientCount, (SELECT COUNT(*) AS Count FROM ClientUsage JOIN Client ON ClientUsage.ClientID = Client.ID WHERE (StateID = 1) AND (Client.RoomID = T1.ID) ) AS ClientFreeCount FROM Room AS T1 
  SELECT id AS ClientUsageID, roomid AS RoomID, count(cliendid) AS CountClientID, StateID AS CountOfClientsWithStateID FROM room R join client C ON R.RoomID =C.RoomID join ClientUsage CL on C.ClientID =CL.ClientID where StateID=1 
Interesting Posts

Аутентификация на основе ролей

Как сделать linq для объектов или dbcontext использовать вывод в инструкции insert?

Как установить CHECK_POLICY OFF в скрипте sql

Лучший способ архивирования данных sql и отображения в веб-приложении по мере необходимости.

SQL Server: сопоставление записей из 2 таблиц с сортировкой

Как получить значение Identity из SQL-сервера после записи вставки

как восстановить резервную копию sql-сервера, файл которого находится на другом компьютере?

Запрос SQL для получения полного пути иерархии

Дата и время SQL Server в формате yyyy-mm-ddThh: mi: ss.mmmZ

Есть ли в SQL Server знать, когда столбец добавляется в таблицу?

Проверьте два срока в Sql

Почему SQL Server заполняет новые поля в существующих строках в некоторых средах, а не в других?

Значение элемента XML-значения t-sql, основанного на значении другого элемента

TSQL выбирает max из 3 столбцов, а затем внутреннее соединение столбца

Создание столбца из строки в mysql

Давайте будем гением компьютера.