【问题标题】:SUM on each line in a SELECT statementSELECT 语句中每一行的 SUM
【发布时间】:2018-02-17 09:30:23
【问题描述】:

我对字段上带有 SUM 的连接语句有疑问。 我有这两个表:

表 1(父级):行程

  • ID - int(11) - 自动递增
  • Maxspots - int(11)

表 2(子):预订量

  • ID - int(11) - 自动递增
  • FK_ID - int(11)
  • 点 - int(11)

我有以下代码:

$SQL = "SELECT  ";
$SQL .= "SUM(Bookings.Spots) as SUMSPOT, Trips.ID, Bookings.FK_ID, Bookings.ID ";   
 $SQL .= "FROM Trips ";
 $SQL .= "INNER JOIN Bookings on Bookings.FK_ID = Trips.ID";

 $SQL_Query = mysql_query($SQL); 

 $tdOdd = 'style = "background-color: #FFFFFF;"';
 $tdEven = 'style = "background-color: #ced4ee;"';

 echo "<table>";
 echo "<tr>";
 echo "<th>Trip nr</th>";
 echo "<th>Sum of spots</th>";
 echo "</tr>";

 $indx = 1; 
 while ($row = mysql_fetch_array($SQL_Query, MYSQL_ASSOC)) {

 $Tripnr = $row['FK_ID'];
 $Sumspots = $row['SUMSPOT'];

 if (($indx % 2) == 1) {$rowClass = $tdOdd; } else { $rowClass = $tdEven; }

 echo "<tr ".$rowClass.">";

 echo "<td>".$Tripnr."</td>";
 echo "<td>".$Sumspots."</td>";     

 echo "</tr>";

 $indx++;

}

 echo "</table>";   

 mysql_free_result($SQL_Query);

它只返回一个 Booking-line,其中包含所有点的总和(在连接内)。我需要它给我每行的 Booking.Spots 的总和。帮助任何人?

【问题讨论】:

  • 添加一些示例表数据和预期结果 - 全部作为格式化文本。同时向我们展示您的独立查询。
  • 尝试在您的选择查询中使用group by Spots

标签: php sql select join sum


【解决方案1】:

为您的非聚合字段添加GROUP BY

$SQL = "SELECT  ";
$SQL .= "SUM(Bookings.Spots) as SUMSPOT, Trips.ID, Bookings.FK_ID, Bookings.ID ";   
$SQL .= "FROM Trips ";
$SQL .= "INNER JOIN Bookings on Bookings.FK_ID = Trips.ID";
$SQL .= "GROUP BY Trips.ID, Bookings.FK_ID, Bookings.ID";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-20
    • 1970-01-01
    • 1970-01-01
    • 2019-01-22
    • 1970-01-01
    • 2018-04-16
    • 2018-12-17
    • 2011-10-15
    相关资源
    最近更新 更多