【发布时间】:2013-02-08 01:47:58
【问题描述】:
我有以下 INNER JOIN 查询:
SELECT b.*, c.date2
FROM (
SELECT a.work, a.amount,
COUNT(*) totalCount,
SUM(Amount) totalAmount
FROM work_times a WHERE Organisation=?
GROUP BY a.work, a.amount
) b
INNER JOIN
(
SELECT a.work, a.amount, DATE_FORMAT(Date,'%D %M %Y') date2,
date
FROM work_times a
) c ON b.work = c.work and b.amount=c.amount
ORDER BY b.work, b.totalCount, c.date
您可以在 SQL fiddle here 上的示例表上看到它的实际效果。
我的目标是返回以下内容:
5 consultancy sessions @ £50 each: £250
1st February 2013
8th February 2013
15th February 2013
22nd February 2013
1st March 2013
3 therapy sessions @ £40 each: £120
2nd February 2013
9th February 2013
16th February 2013
2 therapy sessions @ £20 each: £40
3rd February 2013
10th February 2013
但使用以下 PHP:
$stmt->bind_param("s", $name1);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($work,$amount,$count,$total_group,$date);
while ($stmt->fetch()) {
if ($count>1) {
echo $count." ".$work."s @ £".$amount." each<br><br>";
echo date("jS F Y",strtotime($date))."<br><br>";
$total_work=$total_work+$total_group;
}
else {
echo $count." ".$work." @ £".$amount."<br><br>";
echo date("jS F Y",strtotime($date))."<br><br>";
$total_work=$total_work+$total_group;
}
}
我每行得到一行,而不是分组,即:
5 Consultancy Sessions @ £50.00
1st February 2013
5 Consultancy Sessions @ £50.00
8th February 2013
5 Consultancy Sessions @ £50.00
15th February 2013
...etc
而且我不确定如何修改我的 PHP 以获得所需的输出。
电流输出
5 Consultancy Sessions @ £50.00
1st February 2013
8th February 2013
15th February 2013
22nd February 2013
1st March 2013
2nd February 2013
9th February 2013
16th February 2013
3rd February 2013
10th February 2013
【问题讨论】:
标签: php sql inner-join