将结果分组到两个表中

将结果分组到两个表中,第1张

将结果分组到两个表中

假设这个模式:

create table master (    master_id serial primary key,    project_id int,    category_id int,    supplier_id int);create table detail (    detail_id int,    item_id int,    qty numeric(18,2),    rate numeric(18,2),    master_id int references master (master_id));create temporary table temp_detail (    purchase_order_detail_id integer,    item_id integer,    qty numeric(18,2),    project_id integer,    category_id integer,    supplier_id integer,    rate numeric(18,2));

可以做到这一点

with d as (    insert into master (project_id, category_id, supplier_id)    select distinct project_id, category_id, supplier_id    from temp_detail    returning *)insert into detail (item_id, qty, rate, master_id)select item_id, qty, rate, master_idfrom    temp_detail td    inner join    d on (td.project_id, td.category_id, td.supplier_id) = (d.project_id, d.category_id, d.supplier_id);


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5666424.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存