首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >求和行并插入到新列中

问求和行并插入到新列中
EN

Stack Overflow用户
提问于 2011-04-16 00:08:31
回答 3查看 1.4K关注 0票数 1

我有一个用来跟踪项目权重的数据库。字段为: id、email、order01、order02、order03、order_total

示例数据:

代码语言:javascript
复制
1  mon@gmail.com        0.250    0.000     0.000    0.000   
2  amy@amy.com          0.510    1.888     0.219    0.000   
3  ci@mindspring.com    0.219    0.500     0.000    0.000   
4  kim@kim.com          0.219    0.000     0.000    0.000 

我能够添加数据(即新行或更新现有行),我也能够使用php来显示html表中的数据,我还能够对每一行进行求和,并通过电子邮件输出单个列的总和。我需要做的是对每一行求和,并在末尾的另一列中插入总和。

所需示例数据:

代码语言:javascript
复制
1  mon@gmail.com       0.250    0.000    0.000    0.250     
2  amy@amy.com         0.510    1.888    0.219    2.617     
3  ci@mindspring.com   0.219    0.500    0.000    0.719     
4  kim@kim.com         0.219    0.000    0.000    0.219     

同样,我能够在表中显示数据,并且能够对每一行进行求和-我只是不知道如何将求和插入到适当的列中

这是我用来对数据求和的代码:

代码语言:javascript
复制
$result = mysql_query('SELECT email, (order01+order02+order03) AS order_total FROM `customer_orders`'); 
if (mysql_num_rows($result) > 0) { 
  print '<ul>'; 
  $sum = array(); // initialize 
  while ($myrow = mysql_fetch_array($result)) { 
    $sum[] = $myrow['order_total']; // sum 
    $ordertotal= $myrow['order_total']; 
    print "<li>$ordertotal</li>"; 
  } 
  $sum = array_sum($sum); 
  print "</ul>$sum\n"; 
  } else { 
    print "<h1>No results</h1>\n"; 
  }

这将为我提供一个包含单个列的页面,如下所示:

代码语言:javascript
复制
    0.250
    2.617
    0.719
    0.219

3.8

我真的不关心每一列的总数,或者一个总的总数……只是每一行的总和,加到各自的行上。

EN

回答 3

Stack Overflow用户

发布于 2011-04-16 00:13:36

代码语言:javascript
复制
UPDATE mytable SET order_total=order01+order02+order03

就能达到目的。但是,您应该重新考虑您的表设计。如果大多数订单只需要1个项目,那么您已经浪费了数据库中的2个字段。而且你肯定让别人很难/不可能订购4件或更多的东西。

您应该做的是将订单详细信息拆分到一个子表中,这基本上为1到“大量”的订单提供了无限的灵活性。

票数 3
EN

Stack Overflow用户

发布于 2011-04-16 00:13:19

代码语言:javascript
复制
UPDATE your_table SET order_total=(order01 + order01 + order03) WHERE id='id_of_field_to_change'

如果您想一次完成所有这些操作,只需去掉where子句。

票数 0
EN

Stack Overflow用户

发布于 2011-04-16 00:13:36

代码语言:javascript
复制
UPDATE customer_orders
    SET order_total = order01 + order02 + order03
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5679514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档