我在尝试连接两个表时遇到问题,我的样本表如下
订单表(Odr)
Order_No Item No Order_Type Req_Qty
100 A 2 45
101 B 1 32
102 F 2 23
103 A 4 23
104 C 3 14
105 B 5 43
物品位置表(Loc)
Item_No Location Qty
A X 100
A Y 200
B X 150
B Y 50
C X 75
C Y 150
F X 250
F Y 60
我想看到的是,位置X的每个订单类型1,2和3的数量以及Req_Qty大于0的订单的数量 如下,
Order_No Item No Order_Type Req_Qty X_Qty
100 A 2 45 100
101 B 1 32 150
102 F 2 23 250
104 C 3 14 75
现在我为此写了一个类似下面的查询,但我觉得它没有给我正确的结果
select Odr.*, Loc.Qty
from Odr
inner JOIN Loc
ON Odr.ITEM_no = Loc.ITEM_no
where (SOPTYPE = '1' and Req_Qty >0
or SOPTYPE = '2' and Req_Qty >0
or SOPTYPE = '3' and Req_Qty >0) AND Loc.Location = 'X'
如果这是获得我想要的结果的正确方法,有人可以请求为我检查
感谢
答案 0 :(得分:1)
查询看起来很好。但你可以让它更具可读性:
select Odr.*, Loc.Qty
from Odr
inner JOIN Loc
ON Odr.ITEM_no = Loc.ITEM_no
where (SOPTYPE = '1' or SOPTYPE = '2' or SOPTYPE = '3')
and Req_Qty > 0
and Loc.Location = 'X'
或
select Odr.*, Loc.Qty
from Odr
inner JOIN Loc
ON Odr.ITEM_no = Loc.ITEM_no
where SOPTYPE IS IN('1', '2', '3')
and Req_Qty > 0
and Loc.Location = 'X'