2016-10-15 2 views
0

Меня попросили найти число пациентов, умерших из-за кариеса.Поиск числа пациентов, умерших из-за кариеса

В частности, я несколько смутился о том, как использовать COUNT() вместе с пунктом SELECT.

Admission-Диагноз:

Adm_ID // Прием Номер (Прием в больницу)

Diag_ID // Диагноз ID

Плата за вход:

Adm_ID // Прием Номер (Прием в больницу)

Pat_ID // Patient ID

Date_Adm // Прием Дата

Date_Discharge // Сброс Дата

Health_ID // Здоровье пациента при выписке

Моя попытка:

Во-первых, из таблицы Admission-диагностики у меня те пациенты, которые пошли в больницу из-за кариеса

SELECT * 
FROM Adm_Diag 
WHERE Diag_ID = 900 /*900 code for caries 

Тогда я нахожу Вступительные удостоверение личности, для которых пациенты «здоровье в разряде„умерло“

SELECT * 
FROM Admission 
WHERE Health_ID = 23 /* 23: code for 'Die' 

Тогда я слит эти два стола и нашел тот Прием идентификаторы, где больные умер клюв ause of carious

SELECT e1.Adm_ID, Diag_ID, Health_ID 
FROM (SELECT *FROM Adm_diag WHERE diag_ID = 900) e2, 
    (SELECT *FROM admission WHERE Health_id=23) e1 
WHERE e2.Adm_ID=e1.Adm_ID 

Но у меня возникли проблемы с частью «подсчета». У меня нет идеи, как использовать функцию count и select одновременно. Я пытался поставить все внутренние счета (COUNT(SELECT e1.Adm_ID, Diag_ID, Health_ID...), но он не работает.

Кстати, как я создал базу данных, я положил, что один пациент умер из-за этого (:

ответ

1

Вы можете попробовать:

select count(*) 
from Adm_diag ad 
inner join admission a 
on ad.Adm_ID = a.Adm_ID 
where ad.diag_ID = 900 and a.Health_id=23 
2

Вы можете использовать COUNT (*) с группой от

SELECT e1.Adm_ID, e1.Diag_ID, e2.Health_ID, coun(*) 
FROM Adm_diag as a 
INNER JOIN admission on e1.Adm_ID = e.Adm_ID 
WHERE e1.Diag_ID = 900 
AND e2.Health_ID = 23 
group by e1.Adm_ID, e1.Diag_ID 
Смежные вопросы