Jump to content

Archived

This topic is now archived and is closed to further replies.

ibanez270dx

Adding numbers from the same column

Recommended Posts

Hi,
I am having problems with a little section of my script (running on MySQL 4). Pretty much, I need to extract all everything in my table (no problem), but then I need to take all the numbers (from column "dwntime_hrs") in each row and add them together. How would I go about doing this?

My script looks like this thus far:

$sql = "SELECT *, SUM(dwntime_hrs) as total_downtime FROM $table_name WHERE aircraft_id = '$_POST[viewlog]' ORDER BY dwntime_date";
$result = @mysql_query($sql,$connection) or die(mysql_error());

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

$aircraft_id = stripslashes($row['aircraft_id']);
$aircraft_name = stripslashes($row['aircraft_name']);
$dwntime_type = stripslashes($row['dwntime_type']);
$dwntime_date = stripslashes($row['dwntime_date']);
$dwntime_hrs = stripslashes($row['dwntime_hrs']);
$dwntime_reason = stripslashes($row['dwntime_reason']);
$dwntime_log = stripslashes($row['dwntime_log']);
$dwntime_log_by = stripslashes($row['dwntime_log_by']);
$total_dwntime_hrs = $row['total_downtime'];


However, I get this error:

Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause


Any ideas?

Thanks,
- Jeff

Share this post


Link to post
Share on other sites
you can't use SUM together with other fields unless you specify the GROUP BY clause. if you're trying to get the total of all the records, you can use a different query to select it, or just add it up in php. if you want the total of a specific set of "groups" (like total for different dwntime_type's) then you should specify GROUP BY dwntime_type.

In your context, I guess you're trying to get the total of all dwntime_hrs?

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.