Как получить счет в SQL Server? - PullRequest
0 голосов
/ 25 ноября 2011

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

У меня есть три таблицы

enter image description here

Использование этихТабличные значения Мне нужно получить этот вывод ..

enter image description here

Пробовал, но мог получить желаемый результат http://en.wikipedia.org/wiki/Join_(SQL) SQL - LEFT OUTER JOIN и предложение WHERE http://forums.devshed.com/oracle-development-96/combination-of-left-outer-join-and-where-clause-383248.html

Ответы [ 2 ]

4 голосов
/ 25 ноября 2011

Вы должны сначала GROUP BY в подзапросах, затем JOIN к основной таблице:

SELECT
    a.AttributeId     
  , COALECSE(cntE, 0) AS cntE
  , COALECSE(cntM, 0) AS cntM
FROM
    AttributeMaster AS a
  LEFT JOIN
    ( SELECT
          AttributeId
        , COUNT(*) AS cntE
      FROM 
          EmployeeMaster 
      GROUP BY
          AttributeId
    ) em
      ON  em.AttributeId = a.AttributeId
  LEFT JOIN
    ( SELECT
          AttributeId
        , COUNT(*) AS cntM
      FROM 
          MonthlyDerivedMaster 
      GROUP BY
          AttributeId
    ) mdm
      ON mdm.AttributeId = a.AttributeId
0 голосов
/ 25 ноября 2011
SELECT AttributeId,
(SELECT COUNT(Eid) FROM EmployeeMaster WHERE AttributeMaster.AttributeId = EmployeeMaster.AttributeId) as master_eid,
(SELECT COUNT(Eid) FROM MonthnlyDerivedMaster WHERE AttributeMaster.AttributeId = MonthnlyDerivedMaster.AttributeId) as monthly_eid
FROM AttributeMaster
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...