【问题标题】:SQL MIN Function with where clause带有 where 子句的 SQL MIN 函数
【发布时间】:2012-03-25 22:10:18
【问题描述】:

这是我的项目表

 Project Table
JNo Name    City
J1  Proj1   London
J2  Proj2   Paris
J3  Proj3   Athens
J4  Proj4   India

这是我的装运表

Shipment
SNo PNo JNo Qty
S1  P1  J1  50
S1  P1  J2  90
S1  P2  J1  40
S1  P3  J3  20
S2  P1  J3  110
S2  P2  J2  30
S2  P4  J3  10
S2  P3  J1  100
S3  P1  J3  80
S3  P4  J2  70
S3  P4  J2  70
S4  P1  J3  20
S4  P2  J1  60

我想命名提供最少数量的项目。

我试过了。但它只返回最小数量值 这是我的代码

select min(qty) from shipment where jno IN(select jno from project)

【问题讨论】:

    标签: mysql sql phpmyadmin


    【解决方案1】:
    SELECT p.name 
    FROM Project p, Shipment s
    WHERE s.JNo = p.JNo
      AND s.Qty in (SELECT MIN(qty) FROM shipment)
    

    【讨论】:

      【解决方案2】:

      对于单个出货量最小的项目,试试:

      select p.name
      from project p
      join shipment s on p.jno=s.jno
      order by s.qty
      limit 1
      

      对于总出货量最小的项目,试试:

      select name from
      (select p.name, sum(s.qty) total_shipped
       from project p
       join shipment s on p.jno=s.jno
       group by p.name
       order by 2) sq
      limit 1
      

      【讨论】:

        【解决方案3】:

        您应该使用的查询是

        SELECT project.Name, min(qty) FROM Project 
        LEFT JOIN Shipment ON project.JNO = Shipment.JNO
        

        希望对你有帮助。

        【讨论】:

        • 这将返回每个项目的最小数量,而不是数量最小的项目。
        • @MarkBannister:是的,我同意。作为您的第一个查询,它将需要 ORDER BY shipping.qty 限制 1。
        【解决方案4】:

        不使用 MIN:

        SELECT p.Name, s.Qty FROM `project` p INNER JOIN `shipment` s ON `p`.`jno` = `s`.`jno` ORDER BY `s`.`qty` ASC LIMIT 1

        【讨论】:

          【解决方案5】:

          这应该像你说的那样工作

          select p.Name, s.Qty 
          from Project p, Shipment s
          where p.Jno=s.Jno
          and s.Qty in(select min(s.Qty) from Shipment s);
          

          将显示Project 表中的项目名称和shipment 表中的最小数量。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-03-26
            • 2017-01-15
            • 2020-11-29
            • 2020-09-04
            • 2015-08-17
            • 1970-01-01
            • 2012-07-03
            • 1970-01-01
            相关资源
            最近更新 更多