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:对列的每个组值求和(或差),直到在另一列上满足条件

excel怎么以多个数值范围为条件,然后选择一行,挑选出符合条件的,将其显示在另一行?

oracle/sql中如何根据条件向表中插入数据

sql怎么添加自定义列并且将此列的数据作为条件查询