2013-05-14 57 views
-1

我通过两个查询到innout别名列,我想这样做, res=(inn-out),但它给我一个错误。减去2别名列

Invalid column name 'inn'. 
Invalid column name 'out'. 
? 

select productname 
,inn=isnull((select sum(orderqty) 
       from purchasing.purchaseinvoicedetail 
       where productfk=Production.product.productid),0) 
,outt=isnull((select sum(orderqty) 
       from sales.salesinvoicedetail 
       where productfk=Production.product.productid ),0) 
,res=(inn-outt) 
from production.product 

回答

2

试试这个inn和outt只能在外面引用

Select a.*,inn-outt As [DiffValue] from 
    (
    select productname,inn=isnull((select sum(orderqty) from purchasing.purchaseinvoicedetail where productfk=Production.product.productid),0), 
     outt=isnull((select sum(orderqty) from sales.salesinvoicedetail where productfk=Production.product.productid ),0) 
     from production.product 

     ) As a 
+0

谢谢你很好地工作 – 2013-05-14 06:06:56

0

试试这个:

SELECT t.*, t.Inn - t.outt AS Res 
FROM 
(
select productname 
,inn=isnull((select sum(orderqty) 
       from purchasing.purchaseinvoicedetail 
       where productfk=Production.product.productid),0) 
,outt=isnull((select sum(orderqty) 
       from sales.salesinvoicedetail 
       where productfk=Production.product.productid ),0) 
from production.product 
) t 
+0

任何问题或只是一个随机downvote? – hims056 2013-05-14 06:09:50