2015-07-02 5 views
1

Этот запрос работает нормально, и я получаю список предметов (Мужской, Женский).Подзапрос с подсчетом

SELECT dmg.dmg_Sex 
FROM Demographic dmg 
JOIN LINK lnk ON lnk.lnk_dmgID = dmg.dmg_ID 
JOIN Admission adm ON adm.adm_ID = lnk.lnk_admID 
WHERE adm.adm_ID in (SELECT DISTINCT(adm.adm_ID) 
        FROM Admission adm 
        JOIN LINK lnk ON lnk.lnk_admID = adm.adm_ID 
        JOIN DAILY_LINK dlnk ON dlnk.dlk_lnkID = lnk.lnk_ID 
        WHERE dlnk.dlk_AssessDate >= '2011/01/01' AND dlnk.dlk_AssessDate <= '2011/03/31') 

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

SELECT dmg.dmg_Sex, COUNT (dmg.dmg_Sex) 
FROM Demographic dmg 
JOIN LINK lnk ON lnk.lnk_dmgID = dmg.dmg_ID 
JOIN Admission adm ON adm.adm_ID = lnk.lnk_admID 
WHERE adm.adm_ReferralDate >= '2011/01/01' 
AND adm.adm_ReferralDate <= '2011/03/31' 
GROUP BY dmg.dmg_Sex DESC 

Но пытается объединить два запроса, просто добавив COUNT (dmg.dmg_Sex) в первый запрос не работает. Почему это или я что-то отсутствует

SELECT dmg.dmg_Sex, COUNT (dmg.dmg_Sex) 
FROM Demographic dmg 
JOIN LINK lnk ON lnk.lnk_dmgID = dmg.dmg_ID 
JOIN Admission adm ON adm.adm_ID = lnk.lnk_admID 
WHERE adm.adm_ID in (SELECT DISTINCT(adm.adm_ID) 
        FROM Admission adm 
        JOIN LINK lnk ON lnk.lnk_admID = adm.adm_ID 
        JOIN DAILY_LINK dlnk ON dlnk.dlk_lnkID = lnk.lnk_ID 
        WHERE dlnk.dlk_AssessDate >= '2011/01/01' AND dlnk.dlk_AssessDate <= '2011/03/31') 

Желаемая выход

Мужской 243
Женский 183

выход, получая в настоящее время

Мужской
Мужской
Мужской
Мужской
Мужской
Мужской
Женский
Женский
Женский
Женский
Женский
Женский
Женский

+0

что ваш желаемый результат? первый запрос дает одну строку на запись, а во втором - только две строки с количеством итоговых записей. отправьте образец вывода, как вы хотите, чтобы ваши данные выглядели. –

+0

Вы не хотите группировать свой комбинированный запрос? или я не понимаю? –

+0

и какой результат вы получаете? –

ответ

1

Чтобы иметь возможность рассчитывать секс вам нужно сделать следующий SQL, чтобы объединить ваш SQL

GROUP BY dmg.dmg_Sex DESC 
+1

Спасибо, что ты прав, но @ Crazy2crack был немного быстрее на ничью. Все равно. – morne

+0

не беспокоит @morne, ответ был размещен в комментариях –

+0

не был нужен, но спасибо! –

1

U следует группировать по dmg.dmg_Sex. потому что, если вы используете функцию агрегации в предложении SELECT, обязательно иметь все неагрегатные поля в предложении SELECT, чтобы они содержались в предложении GROUP BY.

Смежные вопросы