我的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;