如何使报表同时显示收入和支出sql命令

如何使报表同时显示收入和支出sql命令,sql,ms-access,Sql,Ms Access,我有两个sql查询,一个是收入报告,另一个是费用报告。当它们单独运行时,它们工作得很好。然而,我必须创建年度报告,显示收入和支出连同谷歌图表。事实证明,我的图表无法正确显示,因为某些月份的某些非值。所以现在我尝试使用SQL将它们连接在一起,但这似乎超出了我的知识范围。在这种情况下不能使用UNION。所以你能帮我吗…谢谢你 我的收入是 select sum(tbt.bill_total) as bill_total ,iif(sum_vat_total is null, 0, sum

我有两个sql查询,一个是收入报告,另一个是费用报告。当它们单独运行时,它们工作得很好。然而,我必须创建年度报告,显示收入和支出连同谷歌图表。事实证明,我的图表无法正确显示,因为某些月份的某些非值。所以现在我尝试使用SQL将它们连接在一起,但这似乎超出了我的知识范围。在这种情况下不能使用UNION。所以你能帮我吗…谢谢你

我的收入是

select sum(tbt.bill_total) as bill_total ,iif(sum_vat_total is null, 0,
       sum_vat_total) as vat_total, iif(sum_vat_total is null, 0,  
       sum_vat_total) + sum(bill_total) as sum_of_all, 
       month(showndate) as [month] 
from tbl_bill_total tbt left join 
   (select sum(vat_total) as sum_vat_total , month(showndate) as [month] 
    from tbl_vat_bill_total 
    where if_paid = true and year([showndate]) =" & current_year & "     
    group by month(showndate)) tvt on tvt.month = month(tbt.showndate)        
      where year([showndate]) =" & current_year & " 
      group by  month(showndate) , sum_vat_total
我的费用是

SELECT Sum(tbl_expense.exp_amt) AS SumOfexp_amt, 
       Year([tbl_expense].[exp_inv_date]) AS yr, 
       Month([tbl_expense].[exp_inv_date]) AS mth 
 FROM tbl_expense 
 GROUP BY Year([tbl_expense].[exp_inv_date]), 
             Month([tbl_expense].[exp_inv_date]) 
 HAVING (((Year([tbl_expense].[exp_inv_date]))=" & current_year & "));
我的桌子是
待结算账单总额

bill_id   | bill_total| bill_discount | shown date | if_paid | cust_id | 
   1      |    1000   |    0          |   2/2/15   |   true  |   01
   2      |    1000   |   0           |   15/2/15  |   true  |   02
   3      |     2000  |    0          |   25/2/15  |   false |    03
   4      |    3000   |   0           |   15/3/15  |   true  |   02
   5      |    500    |   0           |   5/4/15   |   true  |   02
   6      |    500    |   0           |   10/4/15  |   true  |   03



tbl_vat_bill_total
vat_id | vat_total | cust_id | if_paid  | showndate | 
    1  |   1000    |   04    |   true   |    5/2/15  
    2  |    2000   |   02    |    true  |   14/3/15



tbl_expense 
exp_id | sup_id   | if_billed   | shown date   | exp_amt |
    1  |   01     |  true       |   27/2/15    |   1000
    2  |   03     |  true       |   22/4/15    |   100
我想让我的报告如下所示

Month |   Year  | Bill Total | Vat Total | Sum_of_all     | Expense 
  2   |   2015  |  2000      | 1000      |  3000          |   1000
  3   |   2015  |  3000      | 2000      |  5000          |     0
  4   |  2015   |  1000      |  0        |  1000          |    100

我不能说我对您的查询有清楚的理解,但请注意,Union只关心相同数量的同名字段…
因此,一个快速而肮脏的解决方案是修改您的查询,使其具有“相同”的开始字段(只需使用适当的名称)并加入它们…(对于费用,为了清楚起见,您可以将其设置为负数,例如金额:费用*-1)
如果你想要更多的东西,那么一个小样本的数据将是最有帮助的