作者chunhsiang (= =)
看板Database
标题Re: [SQL ] 这个问题SQL该怎麽下?
时间Thu Aug 25 14:39:41 2011
※ 引述《thanksgive (乾温)》之铭言:
: 有四张关联分别为,
: S(S#,SANME)
: P(P#,PNAME)
: J(J#,JNAME)
: SPJ(S#,P#,J#,QTY)
: 题目要找出: 供应零件代号P2最多的供应商名字?
: 解答很明显写错了,
: 可是正确的我也想不出来 :(
: 以下是我自己写的,这样对吗?
: 感觉写得好冗长,也不知道对不对...
: 为节省空间+使容易了解下面的这段会替换最下面的查询
: _____________________________________
: [select S.S# as sno, S.SNAME as name, SUM(SPJ.QTY) as T
: from S, SPJ
: where S.S#=SPJ.S# and
: SPJ.p#='p2'
: group by S.S#, S.SNAME] as TAB*
: ______________________________________
: select name
: from TAB1
: where T =
: (select MAX(T)
: from TAB2
: )
: 请大家替我解惑
: 谢谢 :))
这问题似乎逃不掉子查询(subquery)
因为他问全部之中最大的那个人的栏位是什麽的这类问题
SELECT S.[SNAME]
FROM S INNER JOIN SPJ ON S.[S#]=SPJ.[S#] //自然合并
WHERE SPJ.[P#] = 'P2'
GROUP BY S.[S#], S.[SNAME]
HAVING SUM(SPJ.QTY) >= ALL (
SELECT SUM(SS.[QTY])
FROM SPJ SS
WHERE SS.[P#] = 'P2'
GROUP BY SS.[S#]
)
;
我也不太清楚...有待高手提出更好的办法...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.37.85.250