[英]How do I reference the MIN SQL function in my WHERE clause using a subtable?
[英]SQL MIN Function with where clause
這是我的項目表
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)
SELECT p.name
FROM Project p, Shipment s
WHERE s.JNo = p.JNo
AND s.Qty in (SELECT MIN(qty) FROM shipment)
不使用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
這應該像你說的那樣工作
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
表。
您應該使用的查詢是
SELECT project.Name, min(qty) FROM Project
LEFT JOIN Shipment ON project.JNO = Shipment.JNO
我希望這可以幫到你。
對於發貨量最小的項目,請嘗試:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.