【发布时间】:2019-12-23 23:28:49
【问题描述】:
假设我有两张桌子。一个是订单表,另一个是价格表,给出商品 w.r.t 的价格。订购的商品数量。 test_price 表的含义是“最多 count 个项目(含)每个项目的成本是 price”。因此,0-50 件商品每件售价 1.22。 51-100 每件成本 1.20。
table test_price
id | count | price
----+-------+-------
1 | 50 | 1.22
2 | 100 | 1.20
3 | 150 | 1.19
4 | 200 | 1.18
5 | 300 | 1.10
table test_orders
id | count
----+-------
1 | 12
2 | 50
3 | 65
4 | 155
5 | 400
因此这意味着 12 件商品的订单 1 的价格应为每件 1.22。 订单 5 的价格应为每件 1.10。
我可以得到一个订单的价格
SELECT price FROM test_prices WHERE
count >= (SELECT count FROM test_orders WHERE id = 1)
ORDER BY count ASC LIMIT 1;
我想创建一个视图,以单价和总价作为列显示订单
【问题讨论】:
-
您的价格表没有意义。其中没有
12。而且好像没有1数量的价格。 -
嗨!将列命名为“count”时要小心,因为 count() 也是一个组函数。这可能非常模棱两可。
标签: sql postgresql