SQL产品模型 1.
问题:[SQL语句]一种叫做A的18克产品的价格是多少 回答:135(7.50*18),因为1的价格是10,但10的数量价格是7.50 2. 或:帮助我更有效地重写此模型 产品表[数量为1]SQL产品模型 1.,sql,postgresql,Sql,Postgresql,问题:[SQL语句]一种叫做A的18克产品的价格是多少 回答:135(7.50*18),因为1的价格是10,但10的数量价格是7.50 2. 或:帮助我更有效地重写此模型 产品表[数量为1] id | name | price | unit 1 | A | 10 | g 2 | B | 15 | g 销售表 id | product_id | price | quanity 1 | 1 | 7.50 | 10 2 | 1
id | name | price | unit
1 | A | 10 | g
2 | B | 15 | g
销售表
id | product_id | price | quanity
1 | 1 | 7.50 | 10
2 | 1 | 7 | 20
3 | 2 | 12.50 | 10
或者您知道如何以不同的方式构建此模型吗?尝试您需要的查询:
SELECT S.PRICE*1.8 FROM SALES S
INNER JOIN PRODUCTS P
ON P.ID=S.PRODUCT_ID
WHERE P.NAME='A'
您是在问如何编写SQL语句还是如何有效地为数据建模?你想要什么价格?您在
销售
表中的售价,还是在产品
表中当前的售价?请分享您想要的结果并澄清您的问题。@jnevil我重写了我的问题,我看到了一个单独的名为“PriceLevel”的表,它与产品表相关,并包含价格降低的数量的断点。除非这是销售表本身的目的。通过这种方式,您可以执行联接来计算价格断点,而不是嵌套查询或执行案例语句来进行计算。为什么产品表中有价格?您是否应该在“销售”中添加另一行,其中ID=1,product_ID=1,price=10,quantity=0?这绝对不是标准化的。谈到问题的模式部分,我将从sales
表中删除“数量”,而不是minu-qty
和max-qty
。然后SQL变得很简单:从sales中选择18*价格,其中18介于最小数量和最大数量之间代码>现在设置好后,您需要使用窗口功能,或者选择前1名。。。按子查询或其他昂贵的废话排序。您的查询不正确。格式不正确(使用“代码”按钮设置代码格式)。它也没有支持信息。请修复或删除。