我需要做以下事情而不确定如何在SQL中...
表ORDER_TABLE有订单#,部件号,销售数量,订单类型。每个订单可以有多行, 像订单'
中的许多部分一样我想得到只有1行的订单,而且数量只是= 1。
,订单类型为(TRP,TRY,TRI)。
Select Order_Table where QTY = 1 and Order_TYPE in ('TRP' 'TRY' TRI')
如何按照我想要的订单编码1行?
我想要这个案子:
Order# Part# QTY ORDER_TYPE
12345 TR1 1 TRY
不
12344 TR1 1 TRP
12344 TR2 1 TRP
答案 0 :(得分:1)
使用group by
和having
:
select ot.order_id
from order_table ot
where Order_TYPE in ('TRP' 'TRY' TRI')
group by ot.order_id
having count(*) = 1;
如果您需要其余信息,可以使用join
或类似构造来获取匹配行中的所有值。
编辑:
您似乎想要其他信息。一般SQL是:
select ot.*
from order_table ot join
(select ot.ordernum
from order_table ot
where Order_TYPE in ('TRP' 'TRY' TRI')
group by ot.ordernum
having count(*) = 1
) ot1
on ot.ordernum = ot1.ordernum