2017-03-07 70 views
0

我试图添加ard.terms_amount的结果并从我的“Open AR”计算中减去该结果。所以在这种情况下,它应该是减去0.90将结果总和添加到公式

SELECT 
customer.customer_id 
,customer.customer_name 


,cast(sum(ih.total_amount - ih.amount_paid) as decimal (10,2)) as [Open A/R] 


,cast(dbo.p21_fn_days_sales_outstanding(customer.company_id, customer.customer_id, 90, GETDATE()) as decimal (10,2)) average_dso 
,terms.terms_desc 
,ard.terms_amount 



FROM customer 
INNER JOIN terms ON terms.terms_id = customer.terms_id 
inner join invoice_hdr ih on ih.customer_id = customer.customer_id 
inner join ar_receipts_detail ard on ard.customer_id = customer.customer_id 
WHERE customer.company_id = 'ABC' and customer.customer_id='123456' 
and ih.approved ='y' 


group by customer.customer_id,customer.customer_name,customer.company_id,terms.terms_desc,ard.terms_amount 

enter image description here

+0

您正在使用哪些DBMS? –

+0

@a_horse_with_no_name sql 2012 – eggwhites

+0

@eggwhites是否应该为每行减去* 0.9,还是试图将它们组合成一行? – Santi

回答

0

所以,你想要做的是把列“terms_amount”的总和,并从列“打开A /总和减去它R'对吗?

您可以设置列两个变量的总和,然后减去两者(请原谅我的语法,有一阵子我用MSSQL,但最近我切换到MySQL的工作):

declare @terms_amount float; 
declare @OpenA/R float 
set @terms_amount = (select sum(terms_amount) from yourdatabase); 
set @OpenA/R = (select sum(OpenA/R) from yourdatabase); 
select @terms - @OpenA/R; 

我觉得语法是正确的,但是再一次,我还没有使用MSSQL。