0

このようなテーブルが4つあります

表1:MsPatient

PatientID PatientName
PA001    | Danny andrean
PA002    | John Travolta
PA003    | Danny Lee

表 2:TransactionHeader

TransactionID PatientID TransactionDate
TR001        | PA001   | 2012/12/6
TR002        | PA002   | 2013/11/4
TR003        | PA003   | 2010/4/12

表 3:TransactionDetail

TransactionID MedicineID Quantity
TR001        |   ME001  | 5 
TR002        |   ME001  | 6
TR003        |   ME002  | 5

表 4:MsMedicine

MedicineID MedicineName MedicineStock
ME001     |HIVGOD      |100
ME002     |CancerCure  |50

購入した薬が「ME001」であり、2 単語以上で構成されている (購入した薬の数量から取得した)を表示するにはどうすればよいですかPatientID?PatientNameTotalMedicineBoughtMedicineIDPatientName

例:

PatientID | PatientName    | Total Medicine Bought 
PA001     | Danny Andrean  | 5
PA002     | John Travolta  | 6

私はこのクエリを試しました:

select 
    mp.PatientID,mp.PatientName,SUM(td.Quantity) as TotalMedicineBought 
from 
    MsPatient mp, TransactionDetail td 
inner join 
    TransactionHeader th on th.TransactionID = td.TransactionID 
Group by 
    td.TransactionID, mp.PatientID, mp.PatientName 

2語からなる条件の作り方がわからない

SQL Server 2008 を使用しています

4

4 に答える 4

0

このようなものをお探しですか -:

select a.PatientID,a.PatientName,sum(Quantity) Total_Medicine_Bought
from MsPatient a
join TransactionHeader b
on a.PatientID= b.PatientID
join TransactionDetail c
on b.TransactionID =c.TransactionID
where MedicineID='MEOO1' and (Length(a.PatientName) - length(REPLACE(a.PatientName, ' ', '')) + 1)=2
group by a.PatientID,a.PatientName

SQL フィドル: http://sqlfiddle.com/#!2/4c2cc/3

于 2013-05-25T10:19:35.193 に答える