需要运行一个查询,输出给定时间段(即一个月)的报告,并显示向客户收取的所有费用以及支付的金额(如果有)。我的问题是显示该客户每一行支付的金额。我想显示所有费用和一笔付款金额(假设在最后一行)。不显示客户重复支付的金额
Last NameFirst NameMIDate of ServiceFeePayment BarrazaReyD5/1/2013$160.00 $0.00 BarrazaReyD5/1/2013$12.10 $0.00 OteroAliciaM5/3/2013$84.68 $329.20 OteroAliciaM5/3/2013$99.46 $329.20 OteroAliciaM5/3/2013$46.59 $329.20 OteroAliciaM5/3/2013$48.98 $329.20 OteroAliciaM5/3/2013$26.35 $329.20 OteroAliciaM5/3/2013$23.14 $329.20 Mayweather Bethy 5/5/2013$99.46 $249.70 Mayweather Bethy 5/5/2013$97.96 $249.70 Mayweather Bethy 5/6/2013$34.73 $249.70 Mayweather Bethy 5/6/2013$17.55 $249.70 GarciaMichael 5/11/2013$198.92 $0.00 GarciaMichael 5/11/2013$29.95 $0.00 GarciaMichael 5/11/2013$17.30 $0.00 SmithRichard 5/15/2013$35.00 $0.00 SmithRichard 5/15/2013$2.64 $0.00 BoothKeithR5/23/2013$14.64 $0.00 BoothKeithR5/23/2013$255.30 $0.00 BoothKeithR5/23/2013$66.99 $0.00 SmithVanessa 5/23/2013$18.00 $0.00 SmithVanessa 5/23/2013$1.36 $0.00 HERNANDEZLAURA 5/25/2013$34.47 $0.00 MyersJonathan 5/30/2013$35.00 $37.65 MyersJonathan 5/30/2013$2.65 $37.65
It is displaying the total amount paid for every fee charged to a customer. My query is this
$query = "SELECT
c.lname as lname,
c.fname as fname,
c.mname as mname,
s.date as date,
b.fee as fee,
p.amount as payment,
FROM sell as s,
customer as c,
billing b
LEFT JOIN payments p on p.completion = b.completion AND p.cid=b.cid
WHERE
s.completion = b.completion
AND b.cid = s.cid
AND c.pid = s.cid
AND s.date BETWEEN ? and ?
ORDER BY s.date";
我尝试了GROUP BY p.amount
,但只为该客户留下一行并削减了所有其他费用。我需要显示向客户收取的所有费用,但只有一笔金额作为付款。请帮忙
最佳答案
您在查询中混合了连接样式(ANSI 连接和逗号连接)。不要那样做。尝试始终使用 ANSI JOIN 表示法。更具描述性。
话虽如此,我相信您的查询应该如下所示
SELECT c.lname,
c.fname,
c.mname,
s.date,
b.fee,
p.amount payment
FROM sell s JOIN customer c
ON s.cid = c.pid JOIN billing b
ON s.cid = b.cid
AND s.completion = b.completion LEFT JOIN payments p
ON b.completion = p.completion
AND b.cid = p.cid
WHERE s.date BETWEEN ? AND ?
ORDER BY s.date
该查询显然尚未经过测试
如果这不能解决您的问题,您必须编辑您的问题并为涉及的所有表格(几行)发布相关示例数据,以便在同一表格中生成所需的输出(您已经发布)表格。
关于mysql - 从报告 mysql 查询中删除重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17416707/