SQL外部应用的替代方案

时间:2017-07-06 18:30:59

标签: c# sql-server crystal-reports dataset tableadapter

我的SQL查询从多个表中动态提取库存报告。查询(由其他人编写)与应用程序完美配合。现在我想使用Dataset中的TableAdapter从查询创建水晶报表。但tableadapter拒绝查询,因为它包含OUTER APPLY语句。

是否可以在没有OUTER APPLY语句的情况下重写查询?我对SQL语句只有简单的知识。

SELECT A.itemid as code,A.Description as name,InvOut.unit as Unit,Price as cost,A.salesrate, [quantity] = (isnull(InvIn.TotalIn,0)-isnull(InvReturn.TotalReturn,0)) - isnull(InvOut.TotalOut,0),(((isnull(Invin.TotalIn,0)-isnull(InvReturn.TotalReturn,0))-isnull(InvOut.TotalOut,0))*Price) as totalcost,((isnull(Invin.TotalIn,0)-isnull(InvOut.TotalOut,0))*salesrate) as totalsales,actualstock as ActualStock 
FROM itemdetails A OUTER APPLY(SELECT TotalIn=ISNULL(SUM(quantity),0)
FROM purchasedetails 
Where A.itemid =purchasedetails.itemid) InvIn OUTER APPLY(select 
TotalReturn=ISNULL(SUM(quantity),0)
FROM purchasereturndetails 
WHERE A.itemid=purchasereturndetails.itemid)InvReturn OUTER APPLY(SELECT unit,TotalOut=ISNULL(SUM(isnull((units.quantity*salesdetails.quantity),salesdetails.quantity)),0)
FROM salesdetails left join units on units.units=salesdetails.unit 
WHERE A.itemid = salesdetails.itemid group by unit ) InvOut;

0 个答案:

没有答案
相关问题