Re: [SQL ] 從資料表累加找尋最大值印出

看板Database作者 (QQ)時間15年前 (2010/04/19 09:59), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《lovewo (誠懇先生)》之銘言: : 我有一個資料表叫做eccart : 欄位名稱和格式如下 : ======================================= : Ec_Pdsnum | Ec_Buycart | getdate| : --------------------------------------- : coffee1 | 5 | 2010-04-15| : --------------------------------------- : coffee2 | 5 | 2010-04-15| : --------------------------------------- : coffee1 | 6 | 2010-04-15| : --------------------------------------- : coffee3 | 3 | 2010-04-15| : ---------------------------------------- : coffee4 | 2 | 2010-04-15| : --------------------------------------- : coffee2 | 1 | 2010-04-15| : ---------------------------------------- : .... : 從這裏我想要取得 coffee1 的數量是11>coffee2>coffee3的數量 : 印出coffee1的值和名稱,還有第2大的coffee2的值跟名稱 : 因為Ec_Pdsum的值是從別的地方寫入,所以是會隨意變大的 : 我的寫法是 : $sql = "SELECT Ec_Pdsnum FROM eccart"; : mysql_query("SET NAMES 'big5'"); : $result = mysql_query($sql, $link); : if (!$result) die("執行 SQL 命令失敗"); : else{ : $conn=mysql_connect("localhost","root","qwer") or die("error". : mysql_error()); : mysql_select_db("member",$conn) or die ("error: ".mysql_error()); : while ($row = mysql_fetch_assoc($result)) : { : $check_num = $row['Ec_Pdsnum']; : $sql2 = "SELECT count(*) FROM eccart WHERE Ec_Pdsnum : = '$check_num' "; : mysql_query("SET NAMES 'big5'"); : $result2=mysql_db_query("member",$sql2,$conn); : if (!$result2) die("執行 SQL 2命令失敗"); : $row2 = mysql_fetch_row($result2); : } : 可是寫到這邊就毫無頭緒了 : 因為好像沒有count和max用的函式 : 那我如果要把最大的跟第2大的印出來要怎麼使用? : 我是使用PHP語法寫的,不過主要是資料庫這邊抓值不懂 : 有查過最大值的寫法是 select max(欄位) : 但是我是先累加再去求,就沒辦法使用,小弟是新手 試試 sql語法:select top(2) Ec_Pdsnum,SUM(Ec_Buycart) from eccart group by Ec_Pdsnum order by Ec_Pdsnum asc 我不董php其它的你測試一下 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.46.155.72

04/19 12:19, , 1F
mysql的話,前面的top(2)可能要放到後面變成 limit 2
04/19 12:19, 1F

04/20 09:27, , 2F
我只也ms sql所以可能須要鵂改一下
04/20 09:27, 2F
文章代碼(AID): #1BoxZt1H (Database)
文章代碼(AID): #1BoxZt1H (Database)