2015-04-08 3 views
1

Извините, это связано с моим предыдущим вопросом. https://stackoverflow.com/q/29523379/2240163агрегировать sql с предложением where и присоединяется

Но я полагаю, что я должен задать новый вопрос.

SELECT adm.adm_Consultant, surg.Type AS 'Surgery Type', surg.srg_Details AS 'Procedure', count(surg.srg_Details) as SurgeryNum 
FROM Admission adm 
JOIN Link lnk ON lnk.lnk_admID = adm.adm_ID 
JOIN Surgery surg ON surg.srg_lnkID = lnk.lnk_ID 
WHERE adm.adm_ReferralDate >= '2014-01-01' AND adm.adm_ReferralDate <= '2014-12-31' 
AND adm.adm_PriorSurgery = 'Yes' 
AND adm.adm_Consultant <> '' 
GROUP BY surg.srg_Details 

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

Это работает, но я хочу, чтобы попытаться получить счет на Procedure «s

SELECT adm.adm_Consultant, surg.Type AS 'Surgery Type', surg.srg_Details AS 'Procedure' 
FROM Admission adm 
JOIN Link lnk ON lnk.lnk_admID = adm.adm_ID 
JOIN Surgery surg ON surg.srg_lnkID = lnk.lnk_ID 
WHERE adm.adm_ReferralDate >= '2014-01-01' AND adm.adm_ReferralDate <= '2014-12-31' 
AND adm.adm_PriorSurgery = 'Yes' 
AND adm.adm_Consultant <> '' 
ORDER BY surg.srg_Details 

ответ

1

Try, чтобы добавить все столбцы из SELECT пункта до GROUP BY пункта:

В стандартном SQL, запрос, содержащий предложение GROUP BY, не может ссылаться на на неагрегированные столбцы в списке выбора, которые не указаны в . GROUP BY статья.

Вы можете прочитать documentation.

SELECT adm.adm_Consultant, surg.Type AS 'Surgery Type', surg.srg_Details AS 'Procedure', count(surg.srg_Details) as SurgeryNum 
FROM Admission adm 
JOIN Link lnk ON lnk.lnk_admID = adm.adm_ID 
JOIN Surgery surg ON surg.srg_lnkID = lnk.lnk_ID 
WHERE adm.adm_ReferralDate >= '2014-01-01' AND adm.adm_ReferralDate <= '2014-12-31' 
AND adm.adm_PriorSurgery = 'Yes' 
AND adm.adm_Consultant <> '' 
GROUP BY adm.adm_Consultant, surg.Type, surg.srg_Details 
+0

Это сработало. Но вы можете объяснить причину, почему, может быть, пожалуйста. Спасибо @Stanislovas Kalašnikovas – morne

+0

@morne Обновлен мой ответ с объяснением и ссылкой на документацию. –