sql查询分析查询,如何知道订单是否只有1行

时间:2014-08-12 13:47:05

标签: sql

我需要做以下事情而不确定如何在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

1 个答案:

答案 0 :(得分:1)

使用group byhaving

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