SUM和GROUP BY以及列的差异

时间:2013-09-02 11:33:07

标签: sql select group-by sum

我有一张桌子t1

ag_name   ag_start    ag_end
a         10          20
c         30          50
a         60          70
c         70          75

我想要这个:

ag_name   numberOfCards
a         20
c         25

表示有(20-10)+(70​​-60)= 20张牌。

然后请帮我查询?

4 个答案:

答案 0 :(得分:0)

select ag_name, sum(ag_end - ag_start)
from the_unknown_table
group by ag_name

答案 1 :(得分:0)

请尝试:

select 
    ag_name, 
    sum(ag_end-ag_start) NoOfCards
From t1 
group by ag_name

答案 2 :(得分:0)

Select SUM(ag_end - ag_start) as numberofcards, ag_name From table
Group by ag_name

答案 3 :(得分:0)

当我在DirectAdmin中单击时查询工作正常,但是当我编写代码以显示记录集时,它显示不同的结果。 我的模特:

public function getAgents(){

$db =JFactory::getDBO();    
$query_Recordset1 = "SELECT *,SUM(ag_end - ag_start) AS ag_num FROM #__basak_agent group by ag_fname";
$db->setQuery($query_Recordset1);
return $db->loadAssoc();

}

这是我的.php代码:

</thead>   <?php   
    $count=0;   
        $result=$this->get('Agents');
        foreach( $result as $row_Recordset1 )
        {
            $count++;
?>
<tr>

        <td> <?php echo $count ?></td>
        <td> <?php echo $row_Recordset1['ag_fname'] ; ?></td>
        <td> <?php echo $row_Recordset1['ag_lname'] ; ?></td>
        <td> <?php echo $row_Recordset1['ag_num'] ; ?></td>

</tr>
        <?php  }        ?>
</table>

但在代码中显示:

1    a   a   a
2    a   a   a
3    2   2   2

表中没有这样的字段,我不知道它来自哪里??! 任何人都有建议,我在哪里寻找它?我的代码出了什么问题?