【问题标题】:List vendors, and lowest priced product SQL列出供应商和价格最低的产品 SQL
【发布时间】:2015-01-31 09:21:34
【问题描述】:

我正在尝试加入 2 个表并创建一个返回产品最低值的新字段。我尝试了很多变化,但似乎无法让它发挥作用。

SELECT DISTINCT VENDOR.*, PRODUCT.P_PRICE, PRODUCT.LOWEST_PRICE AS MIN(PRODUCT.P_PRICE)
FROM PRODUCT
INNER JOIN VENDOR
ON VENDOR.V_CODE = PRODUCT.V_CODE
ORDER BY VENDOR.V_NAME

【问题讨论】:

  • PRODUCT.LOWEST_PRICE AS MIN(PRODUCT.P_PRICE) 看起来不对。尝试 MIN(PRODUCT.P_PRICE) AS LOWEST_PRICE

标签: sql inner-join min


【解决方案1】:

您可以使用它,这将从最低价格供应商产品订购

SELECT  VENDOR.V_NAME,  MIN(PRODUCT.P_PRICE) AS LOWEST_PRICE 
FROM VENDOR
INNER JOIN PRODUCT
ON VENDOR.V_CODE = PRODUCT.V_CODE
GROUP BY VENDOR.V_NAME
ORDER BY LOWEST_PRICE

SQL FIDDLE:-http://sqlfiddle.com/#!3/467c8/2

【讨论】:

    【解决方案2】:

    如果您正在寻找供应商的最低价格,请使用 group by 和 min:

    SELECT  VENDOR.V_NAME,  MIN(PRODUCT.P_PRICE) AS LOWEST_PRICE 
    FROM PRODUCT
    INNER JOIN VENDOR
    ON VENDOR.V_CODE = PRODUCT.V_CODE
    GROUP BY VENDOR.V_NAME
    ORDER BY VENDOR.V_NAME
    

    【讨论】:

      【解决方案3】:

      不知道你的架构是如何定义的,试试这个:

      SELECT 
          VENDOR.V_NAME, 
          PRODUCT.P_PRICE AS [VENDOR PRICE], 
          MIN(PRODUCT.P_PRICE) AS [LOWEST PRICE]
      FROM 
          PRODUCT 
          INNER JOIN VENDOR ON VENDOR.V_CODE = PRODUCT.V_CODE 
      GROUP BY
          VENDOR.V_NAME,PRODUCT.P_PRICE
      ORDER BY 
          VENDOR.V_NAME
      

      【讨论】:

      • 剪切原始代码的快速粘贴,修复它,没有抓住它
      • 另外,你的括号假定为 sql server,但它没有被标记为这样。
      • 我的法语很差,但我认为这句话是touche'。我自己的另一个假设。大声笑
      • 因为他都列出了我认为他可能想要一份所有供应商及其价格的清单,以及所有提供该价格的供应商提供的最低价格的清单。如果只是谁的价格最低,那显然是没有比价的listing。
      【解决方案4】:

      如果您希望每个供应商的产品价格最低,我建议使用窗口函数:

      select pv.*
      from (select v.v_name, p.p_name, p.p_price
                   row_number() over (partition by p.v_code order by p.p_price asc) as seqnum
            from vendor v join
                 product p
                 on v.v_code = p.v_code
           ) pv
      where seqnum = 1
      

      【讨论】:

        猜你喜欢
        • 2021-05-03
        • 2020-08-03
        • 2015-11-05
        • 1970-01-01
        • 2021-07-30
        • 2017-12-05
        • 1970-01-01
        • 2016-04-25
        • 1970-01-01
        相关资源
        最近更新 更多