sql - mysql 查询 : show summary of all payments made and total of invoices by date

标签 sql mysql

我想要这样的结果 alt text

来自这些表。

alt text alt text alt text

我什至不知道如何用 php 来做。我什至尝试按日期加入付款和发票表,但没有成功。

这是一个采购系统,此查询将按日期显示所有付款的摘要和发票总数。

我想到了一个解决方案,首先从发票中选择所有日期,然后从付款中选择所有日期并取其并集。然后检查该日期是否有发票,然后检查该日期是否有付款。但是这样查询会比较多。

最佳答案

select
  x.date,
  sum(x.invoiceTotal) as invoiceTotal,
  sum(x.paymentsMade) as paymentMade
from
 (select
   i.date, 
   sum(i.rate * i.quantity /*?*/) as invoiceTotal,
   null as paymentMade    
 from
   invoice i
   inner join invoiceitem ii on ii.invoiceId = i.invoiceId
 group by
   i.date
 union all
 select
   p.date,
   null as invoiceTotal,
   sum(p.amount) as paymentMade    
 from
   payment p
 group by
   p.date) x
group by
  x.date
order by
  x.date

关于sql - mysql 查询 : show summary of all payments made and total of invoices by date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4228926/

相关文章:

mysql - SQL 我是否正确使用了这个连接?

sql - 如何检索热门项目的结果

java - 如何从Mysql中的所有表中删除一条唯一记录

php - 为什么上传代码不能在 firefox 28 以外的浏览器中工作?

php - 上传并保存图片路径到mysql

mysql - MyType 列中值的最大 2 结果

sql - 在 SQL Server 中将特定列的值显示为标题

php - MYSQL PHP 一次检查多个列上的类似语句

javascript - NodeJs util.promisify 不是一个函数

mysql - 如果表中的列具有某个特定值,如何查询 DBName