0

これら 3 つのクエリを 1 つに結合する必要があります。

$sql = "SELECT SUM(datamb) AS value_sum FROM maindata GROUP BY phonenumber";



$sql1 = "select dataplan as currentplan from maindata GROUP BY phonenumber";



$sql2 = "SELECT DISTINCT phonenumber AS value_sum1 FROM maindata";

したがって、次のように 3 つの列で表示できます。

while ($row = mysql_fetch_assoc($result)){

echo "<TABLE id='display'>";
echo "<td><b>Data Usage This Period: ". ROUND ($row["value_sum"],2) . "MB</b></td> ";
echo "<td><b>Data Plan: ". $row["currentplan"] . "</b></td> "; 
echo "<td><b>Phone Number: ". $row["phonenumber"] . "</b></td> ";  
echo "</TABLE>"; 

}

私はUNIONを使用して、すべてのデータが正しい1つの大きな列を作成するだけですが、3列の1つのテーブルにすべて表示する必要があります。考えてくれてありがとう、もしあなたが私が自分の顔を殴るべきだと思ったら、すでに終わっています:)

4

2 に答える 2

2

キーワードを使用GROUP BYして個別のレコードを作成し、残りの値を合計します。

SELECT   phonenumber,
         dataplan AS currentplan,
         SUM(datamb) AS value_sum
FROM     maindata
GROUP BY phonenumber, dataplan;

このクエリは、電話番号とデータ プランの一意の組み合わせを提供し、datambこれらの異なるグループ内のフィールドを合計します。GROUP BYこれは、この種の計算に非常に役立つキーワードを学習するための優れた練習になります。

編集:が表示されている場合、それはそのフィールドDISTINCTもできるという 1 つのヒントです。GROUP BYこれは、その列または列のグループに重複する値がある可能性があることを意味します。ORDER BY最大の効率を得るには、句と同じ順序で、この特定のフィールド グループに対して定義されたキーがあることを確認してください。

于 2013-10-08T15:25:15.617 に答える
-1

$sql1 の不正なグループ化

group by の使用については、各自でお知らせください。

http://dev.mysql.com/doc/refman/5.0/en/group-by-extensions.html

クエリは不正なグループ化となります:

select 
SUM(datamb) AS value_sum, 
dataplan as "first plan row value in this table for this phone number",
phonenumber AS value_sum1 
FROM maindata 
group by phonenumber

またはなし:

select 
SUM(datamb) AS value_sum, 
dataplan as currentplan ,
phonenumber AS value_sum1 
FROM maindata 
group by phonenumber, dataplan
于 2013-10-08T15:34:39.670 に答える