Search Postgresql Archives

Re: [Newbie] UPDATE based on other table content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thom Brown a écrit :


...
2009/10/29 Daniel Chiaramello <daniel.chiaramello@xxxxxxxxx>:
Never mind, I found how finally:

UPDATE
  product
SET
  qty = qty+s_count
FROM (
      SELECT
          intermediate.product_id,
          count(*) AS s_count
      FROM
          intermediate,
          orders
      WHERE
          orders.intermediate_id=intermediate.id
      GROUP BY
          intermediate.product_id
  ) AS summary
WHERE
  summary.product_id = product.id
;

Sorry for disturbance!
Daniel

Your solution looks like it would perform a cumulative calculation.
Surely you'd want qty = s_count?

In any case, wouldn't you be better off not having a quantity column
at all and just calculate it with either a query or a view?

Example:

SELECT product.id, COUNT(intermediate.product_id)
FROM product
LEFT JOIN intermediate ON product.id = intermediate.product_id
GROUP BY product.id
ORDER BY product.id

Or include a product name in the product table to get more meaningful
output.  You'd then get an output like:

id	name	count
1	Orange	5
2	Apples	7
3	Pears	2
4	Kiwi	0

If you don't want ones for which there have been no orders for (or
whatever your intermediate table is for), use an INNER JOIN instead.

Regards

Thom

Thanks for anwer, but no, it's really adding the number of entries to my "qty" field. The "orders" table is a transient one and is cleaned regularly. Of course, the example I gave is a simplified one (there are no orders or products, I chose these names to ease the understanding of my problem) - in reality, the problem is much complicated than that :)

But thanks for answer anyways.

Daniel

--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux