sql : 在另一个表中显示有条件的数据

Posted

技术标签:

【中文标题】sql : 在另一个表中显示有条件的数据【英文标题】:sql : show data with condition in another table 【发布时间】:2013-06-29 21:01:45 【问题描述】:

我有这样的架构

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

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

结果应该是这样的

result pics

我试过了:

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

)

【问题讨论】:

【参考方案1】:

将 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 fiddle

【讨论】:

以上是关于sql : 在另一个表中显示有条件的数据的主要内容,如果未能解决你的问题,请参考以下文章