父表:
Cate_Name | Warn_Qty -------------------- CAT1 | 40 Test | 10 Test1 | 5 Test1 | 10
交易表
CAT1 | 25 Test | 5 Test2 | 50 Test1 | 50
我在这里寻找一个查询。
在父表中,Cate_Name
和Warn_Qty
值将由用户定义
Cate_Name将是n .. no。以下是交易表
查询应仅输出Transaction table
的数量少于或等于相应Parent table
的{{1}}
此处的输出示例表格如
Warm_Qty
注意: - 在查询中, Parent Table
CAT1 | 40
Test | 10
Transaction table
CAT1 | 25
Test | 5
将是多个不仅仅修复类别
答案 0 :(得分:1)
SELECT t.category_name, t.warn_qty
FROM
parent_table p, transaction_table t
WHERE
p.category_name = t.category_name -- the join
t.warn_qty <= p.warn_qty -- the qualifier
除非我在这里遗漏了什么。它主要是说“从事务表中获取所有内容,其中warn_qty小于父表中匹配的warn_qty,并按类别名称加入。”
应该注意的是,对于SQL2008及更高版本,建议您完全写出你的JOIN,而不是像我上面那样做出快捷方式。我虽然老了,但仍然认为这对于简单的连接来说更具可读性。
答案 1 :(得分:1)
尝试使用多个条件的内部联接。
select trans.category, trans.qty
from transactiontable trans
inner join parenttable parent on
trans.Category = parent.Category
and trans.qty <= parent.warn_Qty