我正坐在这个SELECT语句
我将一个产品分成5个产品,每个产品都有一个列,告诉您应该订购多少产品以获得该价格。
我想要的是,例如,如果我订购54,我应该从50获得价格。
如果我订购的是100或101等。我应该从100 ...得到价格等等。
到目前为止,这是我的SELECT ..
SELECT
entity.entity_id AS "ID",
entity.value AS "Name",
qty_price.qty AS "Pcs",
qty_price.value AS "Price"
FROM `mg_catalog_product_entity_tier_price` qty_price
JOIN `mg_catalog_product_entity_varchar` entity
ON qty_price.entity_id = entity.entity_id
WHERE entity.entity_id = 300
AND entity.value = (SELECT name FROM `mg_catalog_product_flat_1` WHERE `mg_catalog_product_flat_1`.entity_id = entity.entity_id)
LIMIT 10;
编辑:以下是回复评论中提到的屏幕截图:
答案 0 :(得分:1)
你可能需要这样的东西(注意,我不是指你的确切表格):
SELECT
item_id,
item_quantity,
(
SELECT base_price
FROM prices p
WHERE
o.item_id = p.item_id AND
o.item_quantity >= p.base_quantity
ORDER BY p.base_quantity
LIMIT 1
) FROM orders o
这里的订单是您的订单表,它有item_id和数量。价格是一个静态表格,其中包含该数量的每件商品的item_id,数量和基本价格。所以,如果你有
订单中17 6
(意味着您购买了ID = 17的商品中的6件)和17 1 3.50
,17 5 3.29
,17 100 3.01
(item_id, quantity, base_price
)您将获得{ {1}}结果。
答案 1 :(得分:-1)
您可能需要重新考虑您的桌面设计。您可能希望有一个mg_catalog_product_entity_tier_price
表,其中列出了可以订购以获得该价格等级的最小和最大数量的项目。然后声明很简单。
否则,这将涉及使用select max(prices.items_required) from prices where order_qty<items_required_for_tier
之类的逻辑。这将从价目表中找到订购商品数量小于实际订单数量的最大商品数量。