0

我有这样的架构

http://sqlfiddle.com/#!3/690e8

我想使用转换显示 TransactionID 和 TransactionDate(格式为“yyyy.MM.dd”),其中 MedicineTypeName 不是“Syrup”且 MedicinePrice 大于 15000,使用转换、存在和...

结果应该是这样的

结果图片

我努力了 :

select th.TransactionID,convert(varchar,th.TransactionDate,20)[tanggal]
from TransactionHeader th 
join TransactionDetail td on th.TransactionID = td.TransactionID 
where td.MedicineID  in 
(
select md.MedicineID
from MsMedicine md join MsMedicineType mmt on mmt.MedicineTypeID = d.MedicineTypeID
where mmt.MedicineTypeName not like 'syrup' and md.MedicinePrice > 15000

)
4

1 回答 1

0

将 d.MedicineTypeID 更改为 md.MedicineTypeID

添加 distinct 以防止重复

select distinct th.TransactionID,convert(varchar,th.TransactionDate,20)[tanggal]
from TransactionHeader th 
join TransactionDetail td on th.TransactionID = td.TransactionID 
where td.MedicineID  in 
(
select md.MedicineID
from MsMedicine md join MsMedicineType mmt on mmt.MedicineTypeID = md.MedicineTypeID
where mmt.MedicineTypeName not like 'syrup' and md.MedicinePrice > 15000

)

sql小提琴

于 2013-06-29T21:06:34.373 回答