如何使用按日期和用户名分隔的while循环添加列的不同值(行)

我正在尝试显示用 date 和 username 分隔的用户付款i.e (GROUP BY date, username)。这是数据库表


id | username | income |  date

   |          |        |

1  |   super  |  750   |  2019-09-21

2  |   super  |  750   |  2019-09-21

3  |   super  |   1    |  2019-09-22

4  |   super  |  750   |  2019-09-22

这是我正在尝试的代码


$income = 0;

while($row = mysqli_fetch_array($query)){

   $income += $row['income'];

}

当我明智地看到记录日期时,这就是我得到的输出


id | username | income |  date

   |          |        |

1  |   super  |  750   |  2019-09-21

2  |   super  |  751   |  2019-09-22

这就是我所期待的


id | username | income |  date

   |          |        |

1  |   super  |  1500  |  2019-09-21

2  |   super  |  751   |  2019-09-22

我正在尝试的第二个选项是


sql查询


SELECT id, username, income, COUNT(*) AS total, date FROM payment

GROUP BY date, username

php代码


$income = 0;

while($row = mysqli_fetch_array($query)){

   $income = $row['income'] * $row['total'];

}

这就是我得到的


id | username | income |  date

   |          |        |

1  |   super  |  1500  |  2019-09-21

2  |   super  |   2    |  2019-09-22

我期待着


id | username | income |  date

   |          |        |

1  |   super  |  1500  |  2019-09-21

2  |   super  |  751   |  2019-09-22

在我看来,这个问题是由于value 1在行中发生的,但不知道如何解决。任何建议将不胜感激

注意 -列3rd, 5th, 7th and 10th row的income将包含值1


慕少森
浏览 97回答 1
1回答

GCT1015

如果您按用户名和日期对其进行分组,则需要将所有行的收入相加(使用SUM())所以SQL应该是......SELECT date, username, SUM(income) AS total     FROM payment    GROUP BY date, username
打开App,查看更多内容
随时随地看视频慕课网APP