SQL产品模型 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

问题:[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          | 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名。。。按子查询或其他昂贵的废话排序。您的查询不正确。格式不正确(使用“代码”按钮设置代码格式)。它也没有支持信息。请修复或删除。