使用此查询...
SELECT
im.spl_instr_code_1 as LW,
sum(pt.nbr_units/im.std_sub_pack_qty) as "Received Units"
FROM
prod_trkg_tran pt,
item_master im,
po_hdr po
WHERE
pt.sku_id = im.sku_id AND
pt.ref_field_2 = po.po_nbr AND
po.ref_field_2='N' AND
pt.create_date_time BETWEEN to_date('2015-12-29 06:00:00','yyyy-mm-dd hh24:mi:ss') AND to_date('2015-12-29 14:30:00','yyyy-mm-dd hh24:mi:ss') AND
pt.module_name = 'Receiving'
GROUP BY
im.spl_instr_code_1
我得到这样的结果......
LW Received Units
== ==============
10 6150
20 3206
25 1981
30 15207
55 11618
56 10077
我如何更加分组已经分组的一些结果? 示例...让我们假设我想将最后3个结果组合在一起以获得这样的最终结果...
LW Received Units
== ==============
10 6150
20 3206
25 1981
NEW_GROUP 36902
答案 0 :(得分:1)
我已经习惯了SQL服务器,但这应该适合你:
SELECT CASE WHEN im.spl_instr_code_1 < 30
THEN im.spli_instr_code_1
ELSE 'New_Group'
END AS LW
im.spl_instr_code_1 as LW,
SUM(pt.nbr_units/im.std_sub_pack_qty) AS "Received Units"
FROM prod_trkg_tran pt, item_master im, po_hdr po
WHERE pt.sku_id = im.sku_id
AND pt.ref_field_2 = po.po_nbr
AND po.ref_field_2='N'
AND pt.create_date_time between to_date('2015-12-29 06:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2015-12-29 14:30:00','yyyy-mm-dd hh24:mi:ss')
AND pt.module_name = 'Receiving'
GROUP BY
CASE WHEN im.spl_instr_code_1 < 30
THEN im.spli_instr_code_1
ELSE 'New_Group'
END
case语句表示当其值小于30时使用“im.spl_instr_code_1”。如果它大于或等于30,则使用“New_Group”。您可以根据需要修改案例逻辑,并根据需要使其变得复杂。
你可以在0到30,31-60,超过60等等之间有一个案例。只需记住在select语句中使用SAME逻辑作为group by子句,你应该没问题。
答案 1 :(得分:0)
在oracle中,您可以使用CTE并在其上构建查询。像下面的东西。如果要添加更多组,可以使用具有相应$(document).on('click', '.imageSelected', function () {
$(this).remove();
});
子句的后续union
。对于where
,这应该有用。
>30