Update ids that are select












0















I making this query and it returns me 88 ids





SELECT DISTINCT so.id
FROM stock_picking sp
INNER JOIN stock_move sm ON sp.id = sm.picking_id
INNER JOIN procurement_order po ON sm.procurement_id = po.id
INNER JOIN sale_order_line sol ON po.sale_line_id = sol.id
INNER JOIN sale_order so ON sol.order_id = so.id

INNER JOIN sale_order_invoice_rel so_inv_rel on so.id = so_inv_rel.order_id
INNER JOIN account_invoice inv on so_inv_rel.invoice_id = inv.id

WHERE

so.invoice_status = 'to invoice'
and sp.state = 'done'
and inv.state != 'draft'


now I want to update these ids and I tried it like this but I get an error, how can I do it correctly?



instead of select, i tried this line



update so set invoice_status = 'invoiced' but get an error

ERROR: relation "so" does not exist
LINE 1: update so set invoice_status = 'invoiced'









share|improve this question



























    0















    I making this query and it returns me 88 ids





    SELECT DISTINCT so.id
    FROM stock_picking sp
    INNER JOIN stock_move sm ON sp.id = sm.picking_id
    INNER JOIN procurement_order po ON sm.procurement_id = po.id
    INNER JOIN sale_order_line sol ON po.sale_line_id = sol.id
    INNER JOIN sale_order so ON sol.order_id = so.id

    INNER JOIN sale_order_invoice_rel so_inv_rel on so.id = so_inv_rel.order_id
    INNER JOIN account_invoice inv on so_inv_rel.invoice_id = inv.id

    WHERE

    so.invoice_status = 'to invoice'
    and sp.state = 'done'
    and inv.state != 'draft'


    now I want to update these ids and I tried it like this but I get an error, how can I do it correctly?



    instead of select, i tried this line



    update so set invoice_status = 'invoiced' but get an error

    ERROR: relation "so" does not exist
    LINE 1: update so set invoice_status = 'invoiced'









    share|improve this question

























      0












      0








      0








      I making this query and it returns me 88 ids





      SELECT DISTINCT so.id
      FROM stock_picking sp
      INNER JOIN stock_move sm ON sp.id = sm.picking_id
      INNER JOIN procurement_order po ON sm.procurement_id = po.id
      INNER JOIN sale_order_line sol ON po.sale_line_id = sol.id
      INNER JOIN sale_order so ON sol.order_id = so.id

      INNER JOIN sale_order_invoice_rel so_inv_rel on so.id = so_inv_rel.order_id
      INNER JOIN account_invoice inv on so_inv_rel.invoice_id = inv.id

      WHERE

      so.invoice_status = 'to invoice'
      and sp.state = 'done'
      and inv.state != 'draft'


      now I want to update these ids and I tried it like this but I get an error, how can I do it correctly?



      instead of select, i tried this line



      update so set invoice_status = 'invoiced' but get an error

      ERROR: relation "so" does not exist
      LINE 1: update so set invoice_status = 'invoiced'









      share|improve this question














      I making this query and it returns me 88 ids





      SELECT DISTINCT so.id
      FROM stock_picking sp
      INNER JOIN stock_move sm ON sp.id = sm.picking_id
      INNER JOIN procurement_order po ON sm.procurement_id = po.id
      INNER JOIN sale_order_line sol ON po.sale_line_id = sol.id
      INNER JOIN sale_order so ON sol.order_id = so.id

      INNER JOIN sale_order_invoice_rel so_inv_rel on so.id = so_inv_rel.order_id
      INNER JOIN account_invoice inv on so_inv_rel.invoice_id = inv.id

      WHERE

      so.invoice_status = 'to invoice'
      and sp.state = 'done'
      and inv.state != 'draft'


      now I want to update these ids and I tried it like this but I get an error, how can I do it correctly?



      instead of select, i tried this line



      update so set invoice_status = 'invoiced' but get an error

      ERROR: relation "so" does not exist
      LINE 1: update so set invoice_status = 'invoiced'






      sql postgresql






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 24 '18 at 11:03









      Chaban33Chaban33

      334213




      334213
























          1 Answer
          1






          active

          oldest

          votes


















          1














          [so] is an alias that you set up for the sale_order table and the code can only recognize it in a query which you set up the alias in.
          That being said if you ran the update query that you wanted you update all of the lines in the sale_order table.
          To update the table for only the id's that are return by the SELECT query about use the following:



          update sale_order set invoice_status = 'invoiced' 
          where id in
          (
          SELECT DISTINCT so.id
          FROM stock_picking sp
          INNER JOIN stock_move sm ON sp.id = sm.picking_id
          INNER JOIN procurement_order po ON sm.procurement_id = po.id
          INNER JOIN sale_order_line sol ON po.sale_line_id = sol.id
          INNER JOIN sale_order so ON sol.order_id = so.id

          INNER JOIN sale_order_invoice_rel so_inv_rel on so.id =
          so_inv_rel.order_id
          INNER JOIN account_invoice inv on so_inv_rel.invoice_id = inv.id

          WHERE

          so.invoice_status = 'to invoice'
          and sp.state = 'done'
          and inv.state != 'draft'
          )





          share|improve this answer























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53457463%2fupdate-ids-that-are-select%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            1














            [so] is an alias that you set up for the sale_order table and the code can only recognize it in a query which you set up the alias in.
            That being said if you ran the update query that you wanted you update all of the lines in the sale_order table.
            To update the table for only the id's that are return by the SELECT query about use the following:



            update sale_order set invoice_status = 'invoiced' 
            where id in
            (
            SELECT DISTINCT so.id
            FROM stock_picking sp
            INNER JOIN stock_move sm ON sp.id = sm.picking_id
            INNER JOIN procurement_order po ON sm.procurement_id = po.id
            INNER JOIN sale_order_line sol ON po.sale_line_id = sol.id
            INNER JOIN sale_order so ON sol.order_id = so.id

            INNER JOIN sale_order_invoice_rel so_inv_rel on so.id =
            so_inv_rel.order_id
            INNER JOIN account_invoice inv on so_inv_rel.invoice_id = inv.id

            WHERE

            so.invoice_status = 'to invoice'
            and sp.state = 'done'
            and inv.state != 'draft'
            )





            share|improve this answer




























              1














              [so] is an alias that you set up for the sale_order table and the code can only recognize it in a query which you set up the alias in.
              That being said if you ran the update query that you wanted you update all of the lines in the sale_order table.
              To update the table for only the id's that are return by the SELECT query about use the following:



              update sale_order set invoice_status = 'invoiced' 
              where id in
              (
              SELECT DISTINCT so.id
              FROM stock_picking sp
              INNER JOIN stock_move sm ON sp.id = sm.picking_id
              INNER JOIN procurement_order po ON sm.procurement_id = po.id
              INNER JOIN sale_order_line sol ON po.sale_line_id = sol.id
              INNER JOIN sale_order so ON sol.order_id = so.id

              INNER JOIN sale_order_invoice_rel so_inv_rel on so.id =
              so_inv_rel.order_id
              INNER JOIN account_invoice inv on so_inv_rel.invoice_id = inv.id

              WHERE

              so.invoice_status = 'to invoice'
              and sp.state = 'done'
              and inv.state != 'draft'
              )





              share|improve this answer


























                1












                1








                1







                [so] is an alias that you set up for the sale_order table and the code can only recognize it in a query which you set up the alias in.
                That being said if you ran the update query that you wanted you update all of the lines in the sale_order table.
                To update the table for only the id's that are return by the SELECT query about use the following:



                update sale_order set invoice_status = 'invoiced' 
                where id in
                (
                SELECT DISTINCT so.id
                FROM stock_picking sp
                INNER JOIN stock_move sm ON sp.id = sm.picking_id
                INNER JOIN procurement_order po ON sm.procurement_id = po.id
                INNER JOIN sale_order_line sol ON po.sale_line_id = sol.id
                INNER JOIN sale_order so ON sol.order_id = so.id

                INNER JOIN sale_order_invoice_rel so_inv_rel on so.id =
                so_inv_rel.order_id
                INNER JOIN account_invoice inv on so_inv_rel.invoice_id = inv.id

                WHERE

                so.invoice_status = 'to invoice'
                and sp.state = 'done'
                and inv.state != 'draft'
                )





                share|improve this answer













                [so] is an alias that you set up for the sale_order table and the code can only recognize it in a query which you set up the alias in.
                That being said if you ran the update query that you wanted you update all of the lines in the sale_order table.
                To update the table for only the id's that are return by the SELECT query about use the following:



                update sale_order set invoice_status = 'invoiced' 
                where id in
                (
                SELECT DISTINCT so.id
                FROM stock_picking sp
                INNER JOIN stock_move sm ON sp.id = sm.picking_id
                INNER JOIN procurement_order po ON sm.procurement_id = po.id
                INNER JOIN sale_order_line sol ON po.sale_line_id = sol.id
                INNER JOIN sale_order so ON sol.order_id = so.id

                INNER JOIN sale_order_invoice_rel so_inv_rel on so.id =
                so_inv_rel.order_id
                INNER JOIN account_invoice inv on so_inv_rel.invoice_id = inv.id

                WHERE

                so.invoice_status = 'to invoice'
                and sp.state = 'done'
                and inv.state != 'draft'
                )






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 24 '18 at 11:17









                Boris JovanovicBoris Jovanovic

                436




                436
































                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53457463%2fupdate-ids-that-are-select%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    404 Error Contact Form 7 ajax form submitting

                    How to know if a Active Directory user can login interactively

                    Refactoring coordinates for Minecraft Pi buildings written in Python