两个groupby查询出来的结果作为where条件比较大小,不嵌套有难度

原创 2018年04月17日 11:06:02

1、通过笛卡尔积把这两个结果都查出来

2、把上次查询出来的结果作为作为内嵌表,利用内层表查出来的结果比较大写

特别注意:红字部分直接放在嵌套子查询语句的外部,不然考虑不周

 select count(CAR_STATE_BILL.PK_CAR_STATE_BILL) from (select CAR_STATE_BILL.PK_CAR_STATE_BILL,

       CAR_STATE_BILL.SE_CS_CODE,
       CAR_STATE_BILL.SE_CS_NAME,
       CAR_STATE_BILL.SE_STARTIME,
       CAR_STATE_BILL.SE_ENDTIME,
       CAR_STATE_BILL.CONTRACT_CODE,
       CAR_STATE_BILL.CONTRACT_NAME,
       CAR_STATE_BILL.CONTRACT_TYPE,
       CAR_STATE_BILL.PK_CONTRACT,
       CAR_STATE_BILL.CHEC_COMPANY_NAME,
       CAR_STATE_BILL.CHEC_COMPANY,
       CAR_STATE_BILL.PK_PRDAILY_CONTRACT,
       CAR_STATE_BILL.PRDAILY_CONTRACT_NAME,
       CAR_STATE_BILL.PRDAILY_CONTRACT_CODE,
       CAR_STATE_BILL.CUSCODE,
       CAR_STATE_BILL.CUS_NAME,
       CAR_STATE_BILL.SUP_CODE,
       CAR_STATE_BILL.SUP_NAME,
       CAR_STATE_BILL.PROJECTDEPT_NAME,
       CAR_STATE_BILL.PK_PROJECTDEPT,
       CAR_STATE_BILL.PK_PROJECTINFO,
       CAR_STATE_BILL.PROJECT_NAME,
       CAR_STATE_BILL.SE_NUM,
       CAR_STATE_BILL.SE_AMOUNT,
       CAR_STATE_BILL.PID,
       CAR_STATE_BILL.BILLTYPE,
       CAR_STATE_BILL.STATUS,
       CAR_STATE_BILL.APPR_RESULT,
       CAR_STATE_BILL.REMARK,
       CAR_STATE_BILL.PK_CREATOR,
       CAR_STATE_BILL.CREATOR_NAME,
       CAR_STATE_BILL.CREATOR_TIME,
       CAR_STATE_BILL.MODIFIER,
       CAR_STATE_BILL.MODIFIERNAME,
       CAR_STATE_BILL.MODIFIEDTIME,
       CAR_STATE_BILL.FREE1,
       CAR_STATE_BILL.FREE2,
       CAR_STATE_BILL.FREE3,
       CAR_STATE_BILL.FREE4,
       CAR_STATE_BILL.FREE5,
       CAR_STATE_BILL.DR,
       CAR_STATE_BILL.CAR_MATCLASSES,
       CAR_STATE_BILL.CAR_MATCLASSES_NAME,
       CAR_STATE_BILL.COUNT_CURR,
       CAR_STATE_BILL.COMPRICE_CURR,
       (select SUM(COUNT) as a from car_state_billdetail where car_state_billdetail.pk_car_state_bill=  CAR_STATE_BILL.PK_CAR_STATE_BILL group by car_state_billdetail.pk_car_state_bill) as a,
       NVL((SELECT SUM(COUNT)
                                         FROM CAR_INSTOR_BILL_DETAIL
                                        WHERE CAR_INSTOR_BILL_DETAIL.PK_CAR_STATE_BILLDETAIL =
                                              CAR_STATE_BILL.PK_CAR_STATE_BILL
                                        group by CAR_INSTOR_BILL_DETAIL.PK_CAR_STATE_BILLDETAIL),
                                       0)as b
  from CAR_STATE_BILL
 WHERE 1 = 1
   AND CAR_STATE_BILL.STATUS = '2'
   and CAR_STATE_BILL.PK_PROJECTINFO = '2021219200000000014'
   and pk_projectinfo like '%2021219200000000014%'
   and (CAR_STATE_BILL.PROJECT_NAME in
       (select project_name
           from project_info
          where org_partyid in
                (select distinct t.partyid
                   from au_partyrelation t
                  START WITH t.partyid in
                             ('2021100700000000004',
                              '2021100700000000007',
                              '2017100700000000032')
                 CONNECT BY PRIOR t.partyid = t.parent_partyid)))  
)  CAR_STATE_BILL where CAR_STATE_BILL.a>CAR_STATE_BILL.b
 ORDER BY CAR_STATE_BILL.STATUS DESC, CAR_STATE_BILL.CREATOR_TIME DESC

API不是从业务抽象出来的

-
  • 1970年01月01日 08:00

mysql 以查询结果作为查询条件sql写法

SELECT dor.DEVICE_UUID AS deviceUuid, dor.OUTAGE_START AS outageStart, dor.OUTAGE_END AS outageEn...
  • a12345555555
  • a12345555555
  • 2017-05-27 14:00:41
  • 1960

mysql分组查询结果集作为条件查询的问题

SELECT    prd.`door_id` doorId,   prd.`name` prdName,   prd.`id` prdId,   prd.`prd_type` prdType,   ...
  • feggenew
  • feggenew
  • 2017-02-14 16:37:55
  • 1032

利用查询到的结果做为条件去更新

select c.id from t_seae a,t_name c where  c.id = a.id and c.status =  考试  and a.time is not null and...
  • mabuchi
  • mabuchi
  • 2007-09-30 08:45:00
  • 539

MySql中一次查询结果用作二次查询条件

Sql的截取关联查询最近在写sql时,碰到了如下情况, 需求是通过一个账户的id去查询关联的该账户下的所有简历,其中地址字段要通过另一个表进行关联查询。地址字段存的是地址表中对应的编号。例如2100...
  • zyb2017
  • zyb2017
  • 2017-08-13 18:30:21
  • 1455

关于 mysql 在联合查询时,使用 concat 拼接查询条件

表 A,现有地区表 表 B,现有广告表,但内容中的地区属性为原添加时的地区表数据,与现有地区表有差异 表 C,原有地区表 因此,这里需要通过 表 A  和 表 C ,找出对应地区的表数据,假...
  • w_yunlong
  • w_yunlong
  • 2015-12-29 11:59:48
  • 6084

thinkphp where 查询比较相同一个表中两个字段值

$where['status'] = array('eq',2); $Bills = D("order"); $list = $Bills->where($where)->where('mon...
  • viqecel
  • viqecel
  • 2017-09-03 10:13:20
  • 1357

表中的两个字段拼接到一起,做为查询条件

数据库中,同一表中的两个字段拼接到一起,做为查询条件的查询SELECT *FROM *  jd where 1=1 and jd.name =要情 and (convert(varchar,jd.ye...
  • winges
  • winges
  • 2007-06-18 15:59:00
  • 1908

MongoDB高级查询:对一个表中的2个字段进行比较----------- $where操作符

1.需要查询的表格 { "age" : 10, "open" : "1" } { "age" : 0, "open" : "1" } { "age" : 0...
  • zhalcie2011
  • zhalcie2011
  • 2018-02-05 14:56:59
  • 322
收藏助手
不良信息举报
您举报文章:两个groupby查询出来的结果作为where条件比较大小,不嵌套有难度
举报原因:
原因补充:

(最多只允许输入30个字)