Files
database/migrations/000.025.sql
T

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;