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 : 在另一个表中显示有条件的数据的主要内容,如果未能解决你的问题,请参考以下文章
Oracle SQL:根据在另一个表中给定条件的列中找到的值插入
从一个表中选择一个逗号分隔的值,并使用 SQL Server 中的函数在另一个表中的 where 条件中使用它
SQL Server:对列的每个组值求和(或差),直到在另一列上满足条件