mysql 内连接

标签 mysql

我正在使用以下查询从我的数据库的不同表中获取报告,检查以下...

SELECT s.id, s.name, c.name AS course_name,
s.open_bal AS open_balance, sum(i.amount) AS gross_fee,
sum(i.discount) AS discount, sum(i.amount) - sum(i.discount) AS net_payable,
SUM(r.reg_fee+r.tut_fee+r.other_fee) AS net_recieved,
(sum(i.amount) - sum(i.discount)) - SUM(r.reg_fee+r.tut_fee+r.other_fee) AS balance_due
FROM students s
INNER JOIN courses c on c.id = s.course_id
LEFT JOIN invoices i on i.student_id = s.id
LEFT JOIN recipts r on r.student_id = s.id;

发票

| id | student_id | amount   | discount |  dnt        | 
+----+------------+----------+----------+-------------+
| 2  | 22         | 35000    | 0        |  2011/01/01 |
+----+------------+----------+----------+-------------+

未从 gross_fee 和 net_payable 获得正确的值。

谢谢。

最佳答案

鉴于选择中的 SUM,我想 GROUP BY s.id 应该可以解决问题。无论如何,GROUP BY 似乎丢失了 :)

SELECT s.id, s.name, c.name AS course_name,
s.open_bal AS open_balance,
SUM(r.reg_fee+r.tut_fee+r.other_fee) AS net_recieved,
 (sum(i.amount) - sum(i.discount)) - SUM(r.reg_fee+r.tut_fee+r.other_fee) AS balance_due
FROM students s
INNER JOIN courses c on c.id = s.course_id
LEFT JOIN invoices i on i.student_id = s.id
LEFT JOIN recipts r on r.student_id = s.id
GROUP BY s.id;

编辑

单独的查询允许检索所有发票的 gross_feenet_payable

SELECT sum(amount) AS gross_fee,
  sum(discount) AS discount,
  sum(amount) - sum(discount) AS net_payable,
FROM invoices;

关于mysql 内连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5648597/

相关文章:

PHP 编写一个价格比较工具

mysql - 将 GROUP BY 与附加子句一起使用

mysqldump where 子句在输出中不产生任何行

html - 如何接受数据库中包含新行和 'n' 个空格的数据?

python - django wth gis.mysql 导致内部服务器错误

c++ - MySQL 的连接器/C++ 可以与 Visual Studio 2017 一起使用吗?

php - 选择要从 XML 导入到 mySQL 表的数据

php - 将两个数组中的行插入到php中的mysql表中

mysql - Heroku Rails mySql (mysql2 gem) 迁移

php - 按年份和月份获取数据库中的记录