首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询子选择至少一个

查询子选择至少一个
EN

Stack Overflow用户
提问于 2018-11-11 01:22:43
回答 1查看 26关注 0票数 0

我有一个名为movement_history的表(它表示汽车的移动(注册、销售、暂停、维修、销毁)。我想知道每辆车都卖给了谁的公司的信息。

这是我的表(select *)

代码语言:javascript
复制
code_car  date_movement  type_movement  current_company_code
  6000     01/01/2010       NEW              5
  6000     01/01/2012       REPARATION       5
  6000     01/11/2015       SOLD             8
  6000     01/01/2017       DESTROYED        8
  4444     01/05/2000       NEW              10
  4444     01/05/2000       SUSPENDED        10
  4444     01/05/2015       SOLD             5
  4444     01/07/2015       RENOVATION       5
  4444     09/12/2015       SOLD             18
  ....      ...             ...              ...

因此,如果我想要在确定的时间(从01-01-2015到31-02-2015)内(01-01-2015到31-02-2015)公司5的所有汽车销量,结果如下:

代码语言:javascript
复制
  code_car  date_movement  type_movement  current_company_code
  6000     01/11/2015       SOLD             8
  4444     09/12/2015        SOLD             18

这就是我的问题。首先,我从公司获得了所有的汽车5.然后,我获得了所有的‘售出’运动,如果某一天已经成为公司的一部分,我想要获得每一辆售出的汽车5.

代码语言:javascript
复制
select 
    code_car,date_movement,type_movement,current_company_code 
from 
    movement_history where code_car in (
        (select code_car from movement_history where current_company_code = 5)) and 
code_car IN     
        (select code_car from movement_history where type_movement = 
        'SOLD' and code_car <> 5 and date_movement > to_Date('01-01-2015','dd/mm/yyyy') and date_movement < to_Date('31-12-2015','dd/mm/yyyy'));

我猜我做得很糟糕,如果某天卖出的每辆车至少有一次成为公司的一部分。

有什么建议吗?非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2018-11-11 01:25:55

我明白了。current_company_code是得到这辆车的公司。因此,您想要使用LAG()

代码语言:javascript
复制
select mh.*
from (select mh.*,
             lag(mh.current_company_code) over (partition by mh.code_car order by date_movement) as prev_ccc
      from movement_history mh
     ) mh
where mh.type_movement = 'SOLD' and
      mh.date_movement >= date '2015-01-01' and
      mh.date_movement < date '2016-01-01' and
      mh.prev_ccc = 5;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53241512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档