天天看點

三表左外連接配接的執行個體

寫過最惡心的sql,表名太長。

String hql="select js_product_warehouse.c_id,js_product_warehouse.c_product_id,js_product_warehouse.c_stock,nvl(m.sumEnterWarehouse,0),nvl(n.sumOutWarehouse,0),nvl(m.enterWarehouseDate,n.outWarehouseDate) stockReportDate from "+

           "js_product_warehouse "+

    "left join (select js_product_warehouse_detail.c_product_warehouse_id product_warehouse_id,sum(js_product_warehouse_detail.c_enter_warehouse) sumEnterWarehouse,js_product_warehouse_detail.c_enter_warehouse_date enterWarehouseDate from js_product_warehouse_detail where js_product_warehouse_detail.c_is_del='1' group by js_product_warehouse_detail.c_product_warehouse_id,js_product_warehouse_detail.c_enter_warehouse_date) m on js_product_warehouse.c_id=m.product_warehouse_id "+

    "left join (select js_product_sale_detail.c_product_warehouse_id product_warehouse_id,sum(js_product_sale_detail.c_out_warehouse) sumOutWarehouse,js_product_sale_detail.c_out_date outWarehouseDate from js_product_sale_detail where js_product_sale_detail.c_is_del='1' group by js_product_sale_detail.c_product_warehouse_id,js_product_sale_detail.c_out_date) n on js_product_warehouse.c_id=n.product_warehouse_id and m.enterWarehouseDate=n.outWarehouseDate  where js_product_warehouse.c_is_del='1' "+

   "order by js_product_warehouse.c_product_id,nvl(m.enterWarehouseDate,n.outWarehouseDate)";

繼續閱讀