如何使报表同时显示收入和支出sql命令
我有两个sql查询,一个是收入报告,另一个是费用报告。当它们单独运行时,它们工作得很好。然而,我必须创建年度报告,显示收入和支出连同谷歌图表。事实证明,我的图表无法正确显示,因为某些月份的某些非值。所以现在我尝试使用SQL将它们连接在一起,但这似乎超出了我的知识范围。在这种情况下不能使用UNION。所以你能帮我吗…谢谢你 我的收入是如何使报表同时显示收入和支出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
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)
如果你想要更多的东西,那么一个小样本的数据将是最有帮助的