在具有匹配值的数组中求和

时间:2010-04-26 03:43:00

标签: php mysql

我想在日期(2个表格)之间进行交叉计算后,在php-mysql中按 salesid 做一个简单的总和,以获得实时佣金,所有的价值已经正确出来但我有每个销售ID的最终金额出现问题。

每次输入佣金表格发生变更时,都会插入新值:

salesid  commission  datefrom - dateto
aa0001   20%         2010/01/01 - 2010/02/09
aa0001   25%         2010/02/09 - null

和表事务得到了

items   qty   price   salesid    transactiondate

表佣金的调用值,其中salesid = $ _ sessionid $ today =下周在php中的日期。

if ($dateto == 0) {
$dateto = $today; }

表事务的调用值,其中salesid = $ _ sessionid

我使用以下范围来获得交易日期:

if ($transactiondate >= $datefrom and $transactiondate < $dateto) {
$subcommission = ($price * $commission) } 

,价值如下:

salesid  commission
aa0001   1000
bb0001   500
aa0001   200
bb0001   50

我已尝试在此网站中使用少量示例,但仍无法满足正确的结果。由于某种原因(需要用其他表计算)

,我无法在mysql中完成总和

结果将是:

aa0001  1200
bb0001  550

感谢您完成测试的任何帮助。非常感谢你。

3 个答案:

答案 0 :(得分:1)

如果它应该代表包含salesidcommission列的表格,您可以这样做:

SELECT salesid, SUM(commission) FROM table GROUP BY salesid;

即使它依赖于连接,你应该能够做到,但缺乏细节,我不能真正举一个例子

答案 1 :(得分:0)

您可以创建一个数组,其中键为salesid且值为commission,然后再次为同一个键过滤数组。它可能有助于你。

答案 2 :(得分:0)

我对php不太专业,因为我真的是vb程序员。而且我不太专业使用索引,键或多个数组。

我已经解决了这个问题,使用临时表来存储临时数据和会话。每次打开表单时,都会删除临时表中带有会话用户ID的数据并生成计算数据并插入到临时表中,并用sum和group by再次选择数据。

感谢大家的支持,我将从现在开始学到更多......美好的一天......