32 lines
1.1 KiB
SQL
32 lines
1.1 KiB
SQL
ALTER TABLE "product-printproducts"
|
|
DROP COLUMN IF EXISTS listprice,
|
|
ADD listprice INT NOT NULL DEFAULT 0;
|
|
|
|
UPDATE "product-printproducts"
|
|
SET listprice = ROUND(price)
|
|
FROM (
|
|
SELECT
|
|
printid,
|
|
price * COALESCE(pricepremium, 1) * 100
|
|
* CASE printproducts.groupid
|
|
WHEN 2
|
|
THEN 0.2 -- 0.2m2 is the minimum paid size for canvas
|
|
ELSE 1 END AS price -- 1.0m2 is the same for wallpaper
|
|
FROM "product-printproducts" printproducts
|
|
JOIN "product-products" products ON printproducts.productid = products.productid
|
|
JOIN (
|
|
SELECT
|
|
groupid,
|
|
MIN(price) AS price
|
|
FROM "product-printprices"
|
|
GROUP BY groupid
|
|
) prices ON printproducts.groupid = prices.groupid
|
|
LEFT JOIN (
|
|
SELECT
|
|
designerid,
|
|
1 + (pricepremium / 100) AS pricepremium
|
|
FROM designers
|
|
) designers ON products.designerid = designers.designerid
|
|
) s
|
|
WHERE "product-printproducts".printid = s.printid;
|