作者conanist (QQ)
看板Database
标题Re: [SQL ] 从资料表累加找寻最大值印出
时间Mon Apr 19 09:59:17 2010
※ 引述《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
1F:推 cutecpu:mysql的话,前面的top(2)可能要放到後面变成 limit 2 04/19 12:19
2F:→ conanist:我只也ms sql所以可能须要鸺改一下 04/20 09:27