作者donkeychen (Bad_To_The_Bone)
看板Database
标题[SQL ] 请教一下下列叙述问题如何查询(sum+max)
时间Sun Nov 27 18:39:59 2011
table SPJ(SNO,PNO,JNO,QTY)
table S(SNO,SNAME)
SNO PNO JNO QTY
---------------
S1 P2 J1 400
S2 P2 J1 300
S2 P2 J2 300
SNO SNAME
---------------
S1 Peter
S2 John
上面两个Table
我取我有问题的部分请教
S为供货商
P为产品
J为计画
如要查询供给P2产品最多供应商的名称
由上面资料可以知道应该是S2 John供应了600为最多
请问这样该如何达成呢
我想大概是用巢状SELECT
但是好像怪怪的
------------------
我用了access试
SELECT MAX(TOTAL) as MAX_P2
FROM(
SELECT SUM(QTY) AS TOTAL
FROM SPJ
WHERE PNO='P2'
GROUP BY SNO
)
;
可以得到
MAX_P2
------
600
------------------
但是因为要串接SNAME与S表格的关系
我试了
SELECT
SNO,MAX(TOTAL) as MAX_P2
FROM(
SELECT SNO,SUM(QTY) AS TOTAL
FROM SPJ
WHERE PNO='P2'
GROUP BY SNO
)
;
会显示不知道SNO是什麽
SELECT
G_SNO,MAX(TOTAL) as MAX_P2
FROM(
SELECT SNO
AS G_SNO,SUM(QTY) AS TOTAL
FROM SPJ
WHERE PNO='P2'
GROUP BY SNO
)
;
一样不能
目标是
SELECT SNAME
FROM S
WHERE SNO IN (
SELECT SNO
FROM(
一个有已经查到MAX(SUM(QTY))
)
);
在用SNO串的地方卡住了
思维不清晰还请大家帮忙
感谢大家
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.169.201.183