[英]SQL get all columns from a table along with the count of a grouped column from another table related by a foreign key
[英]SQL : count foreign key in another table
我有这样的架构
http://sqlfiddle.com/#!3/690e8
我想显示PatientID,PatientName,Initial(从前两个字符的患者名以大写格式获取),PatientBirthDate和TransactionCount(从患者进行的检查次数中得出,并在“结束)。
结果应该是这样的:
我努力了 :
select mp.PatientID,mp.PatientName,(upper(left(mp.PatientName,2))) [initial],mp.PatientBirthDate,trans.result
from MsPatient mp,
(select COUNT(th.PatientID) as result
from TransactionHeader th group by th.PatientID) as trans
但是它无效,有效的应该像图片中那样。
select
mp.PatientID,
mp.PatientName,
upper(left(mp.PatientName, 2)) as [initial],
mp.PatientBirthDate,
cast(trans.result as varchar(50)) + ' Transaction(s)' as [NumberOfTransactions]
from
MsPatient mp
join (select PatientID, COUNT(PatientID) as result
from TransactionHeader group by PatientID) trans on trans.PatientId = mp.PatientId
注意连接到内联派生表'trans'
[您也可以使用CTE(公用表表达式)执行此操作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.