title: Increment id using sub query
body: <p>This is in reference to this question <a href="https://stackoverflow.com/questions/34545414/grouped-result-insert-into-two-tables">Grouped result insert into two tables</a></p>
  
  <p>I have the following schema</p>
  
  <pre><code>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)
  );
  </code></pre>
  
  <p>I am getting the result using </p>
  
  <pre><code>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_id
  from
      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)
  ;
  </code></pre>
  
  <p>The above query works fine, but I want to use a sub query to increment the master_id instead of the serial data type. Please help.</p>