Sql server 如何解决以下问题以在Microsoft Dynamics AX的SSRS中显示按日期显示的库存记录
我是新的Microsoft Dynamics AX业务分析师。我正在编写一个SQL查询,以显示按日期显示的库存记录,如期初库存、净发货、售出库存、转出库存、库存调整和期末库存。 我写了一个查询,其中显示了@FromDate=2013-11-01和@ToDate=2014-01-01之间的以下记录。 正在获取518条记录。我不关心在报告中显示多达前398条记录,因为这些是计算期初库存的日期前记录。 问题是: 1.我不想在报表上的@FromDaterecords之前显示可用于隐藏它们的条件。 2.前一天的收盘价必须等于第二天的开盘价。但在图3中可以看到,情况并非如此 注:我将所有数量逐一汇总,如SumOpeningStock。它显示了单位的确切数量。 图-1 图2-2 图-3 下面是SQL查询 提前谢谢你的帮助Sql server 如何解决以下问题以在Microsoft Dynamics AX的SSRS中显示按日期显示的库存记录,sql-server,reporting-services,axapta,Sql Server,Reporting Services,Axapta,我是新的Microsoft Dynamics AX业务分析师。我正在编写一个SQL查询,以显示按日期显示的库存记录,如期初库存、净发货、售出库存、转出库存、库存调整和期末库存。 我写了一个查询,其中显示了@FromDate=2013-11-01和@ToDate=2014-01-01之间的以下记录。 正在获取518条记录。我不关心在报告中显示多达前398条记录,因为这些是计算期初库存的日期前记录。 问题是: 1.我不想在报表上的@FromDaterecords之前显示可用于隐藏它们的条件。 2.前
SELECT TempTable.Dated, TempTable.BusinessGroup,
ISNULL(SUM(Opening),0) OpeningStock, ISNULL(SUM(Dispatched),0) NetDispatched,
(ISNULL(SUM(Opening),0) + ISNULL(SUM(Dispatched),0)) TotalStock,
ISNULL(SUM(Sold),0) SoldStock, ISNULL(SUM(TransferredOut),0) TransferOutStock,
ISNULL(SUM(StockAdjustment),0) StockAdjustment,
(ISNULL(SUM(Opening),0)+ISNULL(SUM(Dispatched),0)-ISNULL(SUM(Sold),0)-ISNULL(SUM(TransferredOut),0)+ISNULL(SUM(StockAdjustment),0)) ClosingStock
FROM
(
/*------------------Opening---------------------------*/
SELECT CSM.Dated,RIT.BUSINESSGROUP,RIT.DIVISIONGROUP,RIT.ITEMDEPARTMENT,CSM.InventLocationID,CSM.ITEMID,IT.ITEMNAME,RIT.SEASONCODE,CSM.LabelId,CSM.LabelName,SUM(CSM.Qty) Opening,
0 Dispatched, 0 Sold, 0 TransferredOut, 0 StockAdjustment,CSM.OtherLocation
FROM dbo.Mtq_CompleteStockMovement AS CSM
LEFT OUTER JOIN dbo.INVENTTABLE AS IT ON CSM.ITEMID = IT.ITEMID AND CSM.DataAreaID = IT.DATAAREAID
LEFT OUTER JOIN dbo.RBOINVENTTABLE AS RIT ON RIT.ITEMID=IT.ITEMID AND RIT.DATAAREAID=IT.DATAAREAID
WHERE CSM.DataAreaID='tcl' AND CSM.LabelId <>3 AND CSM.InventLocationID='SW143' AND CSM.Dated < '2013-11-01'
GROUP BY CSM.Dated,RIT.BUSINESSGROUP,RIT.DIVISIONGROUP,RIT.ITEMDEPARTMENT,CSM.InventLocationID,CSM.ITEMID,IT.ITEMNAME,RIT.SEASONCODE,CSM.LabelId,CSM.LabelName,CSM.OtherLocation
UNION ALL
SELECT CSM.Dated,RIT.BUSINESSGROUP,RIT.DIVISIONGROUP,RIT.ITEMDEPARTMENT,CSM.InventLocationID,CSM.ITEMID,IT.ITEMNAME,RIT.SEASONCODE,CSM.LabelId,CSM.LabelName,SUM(CSM.Qty) Opening,
0 Dispatched, 0 Sold, 0 TransferredOut, 0 StockAdjustment,CSM.OtherLocation
FROM dbo.Mtq_CompleteStockMovement AS CSM
LEFT OUTER JOIN dbo.INVENTTABLE AS IT ON CSM.ITEMID = IT.ITEMID AND CSM.DataAreaID = IT.DATAAREAID
LEFT OUTER JOIN dbo.RBOINVENTTABLE AS RIT ON RIT.ITEMID=IT.ITEMID AND RIT.DATAAREAID=IT.DATAAREAID
WHERE CSM.DataAreaID='tcl' AND CSM.LabelId =4 AND CSM.OtherLocation='SW143' AND CSM.Dated < '2013-11-01'
GROUP BY CSM.Dated,RIT.BUSINESSGROUP,RIT.DIVISIONGROUP,RIT.ITEMDEPARTMENT,CSM.InventLocationID,CSM.ITEMID,IT.ITEMNAME,RIT.SEASONCODE,CSM.LabelId,CSM.LabelName,CSM.OtherLocation
UNION ALL
/*---------------------Dispatch----------------------*/
/****Transfer in****/
SELECT CSM.Dated,RIT.BUSINESSGROUP,RIT.DIVISIONGROUP,RIT.ITEMDEPARTMENT,CSM.InventLocationID,CSM.ITEMID,IT.ITEMNAME,RIT.SEASONCODE,CSM.LabelId,CSM.LabelName, 0 Opening,
SUM(CSM.Qty) Dispatched, 0 Sold, 0 TransferredOut, 0 StockAdjustment, CSM.OtherLocation
FROM dbo.Mtq_CompleteStockMovement AS CSM
LEFT OUTER JOIN dbo.INVENTTABLE AS IT ON CSM.ITEMID = IT.ITEMID AND CSM.DataAreaID = IT.DATAAREAID
LEFT OUTER JOIN dbo.RBOINVENTTABLE AS RIT ON RIT.ITEMID=IT.ITEMID AND RIT.DATAAREAID=IT.DATAAREAID
WHERE CSM.DataAreaID='tcl' AND CSM.LabelId =4 AND CSM.InventLocationID='SW143' AND CSM.Dated BETWEEN '2013-11-01' AND '2014-01-01'
GROUP BY CSM.Dated,RIT.BUSINESSGROUP,RIT.DIVISIONGROUP,RIT.ITEMDEPARTMENT,CSM.InventLocationID,CSM.ITEMID,IT.ITEMNAME,RIT.SEASONCODE,CSM.LabelId,CSM.LabelName,CSM.OtherLocation
UNION ALL
/***Purchase Order***/
SELECT CSM.Dated,RIT.BUSINESSGROUP,RIT.DIVISIONGROUP,RIT.ITEMDEPARTMENT,CSM.InventLocationID,CSM.ITEMID,IT.ITEMNAME,RIT.SEASONCODE,CSM.LabelId,CSM.LabelName, 0 Opening,
SUM(CSM.Qty) Dispatched, 0 Sold, 0 TransferredOut, 0 StockAdjustment, CSM.OtherLocation
FROM dbo.Mtq_CompleteStockMovement AS CSM
LEFT OUTER JOIN dbo.INVENTTABLE AS IT ON CSM.ITEMID = IT.ITEMID AND CSM.DataAreaID = IT.DATAAREAID
LEFT OUTER JOIN dbo.RBOINVENTTABLE AS RIT ON RIT.ITEMID=IT.ITEMID AND RIT.DATAAREAID=IT.DATAAREAID
WHERE CSM.DataAreaID='tcl' AND CSM.LabelId =1 AND CSM.InventLocationID='SW143' AND CSM.Dated BETWEEN '2013-11-01' AND '2014-01-01'
GROUP BY CSM.Dated,RIT.BUSINESSGROUP,RIT.DIVISIONGROUP,RIT.ITEMDEPARTMENT,CSM.InventLocationID,CSM.ITEMID,IT.ITEMNAME,RIT.SEASONCODE,CSM.LabelId,CSM.LabelName,CSM.OtherLocation
UNION ALL
/***------------------Sales---------------------***/
SELECT CSM.Dated,RIT.BUSINESSGROUP,RIT.DIVISIONGROUP,RIT.ITEMDEPARTMENT,CSM.InventLocationID,CSM.ITEMID,IT.ITEMNAME,RIT.SEASONCODE,CSM.LabelId,CSM.LabelName, 0 Opening,
0 Dispatched, SUM(CSM.Qty * -1)Sold, 0 TransferredOut, 0 StockAdjustment, CSM.OtherLocation
FROM dbo.Mtq_CompleteStockMovement AS CSM
LEFT OUTER JOIN dbo.INVENTTABLE AS IT ON CSM.ITEMID = IT.ITEMID AND CSM.DataAreaID = IT.DATAAREAID
LEFT OUTER JOIN dbo.RBOINVENTTABLE AS RIT ON RIT.ITEMID=IT.ITEMID AND RIT.DATAAREAID=IT.DATAAREAID
WHERE CSM.DataAreaID='tcl' AND CSM.LabelId =6 AND CSM.InventLocationID='SW143' AND CSM.Dated BETWEEN '2013-11-01' AND '2014-01-01'
GROUP BY CSM.Dated,RIT.BUSINESSGROUP,RIT.DIVISIONGROUP,RIT.ITEMDEPARTMENT,CSM.InventLocationID,CSM.ITEMID,IT.ITEMNAME,RIT.SEASONCODE,CSM.LabelId,CSM.LabelName,CSM.OtherLocation
UNION ALL
/***---------------Transfer out------------------***/
SELECT CSM.Dated,RIT.BUSINESSGROUP,RIT.DIVISIONGROUP,RIT.ITEMDEPARTMENT,CSM.InventLocationID,CSM.ITEMID,IT.ITEMNAME,RIT.SEASONCODE,CSM.LabelId,CSM.LabelName, 0 Opening,
0 Dispatched, 0 Sold, SUM(CSM.Qty) TransferredOut, 0 StockAdjustment, CSM.OtherLocation
FROM dbo.Mtq_CompleteStockMovement AS CSM
LEFT OUTER JOIN dbo.INVENTTABLE AS IT ON CSM.ITEMID = IT.ITEMID AND CSM.DataAreaID = IT.DATAAREAID
LEFT OUTER JOIN dbo.RBOINVENTTABLE AS RIT ON RIT.ITEMID=IT.ITEMID AND RIT.DATAAREAID=IT.DATAAREAID
WHERE CSM.DataAreaID='tcl' AND CSM.LabelId =3 AND CSM.InventLocationID='SW143' AND CSM.Dated BETWEEN '2013-11-01' AND '2014-01-01'
GROUP BY CSM.Dated,RIT.BUSINESSGROUP,RIT.DIVISIONGROUP,RIT.ITEMDEPARTMENT,CSM.InventLocationID,CSM.ITEMID,IT.ITEMNAME,RIT.SEASONCODE,CSM.LabelId,CSM.LabelName,CSM.OtherLocation
UNION ALL
/***------------Stock Adjustment--------------***/
SELECT CSM.Dated,RIT.BUSINESSGROUP,RIT.DIVISIONGROUP,RIT.ITEMDEPARTMENT,CSM.InventLocationID,CSM.ITEMID,IT.ITEMNAME,RIT.SEASONCODE,CSM.LabelId,CSM.LabelName, 0 Opening,
0 Dispatched, 0 Sold, 0 TransferredOut, SUM(CSM.Qty) StockAdjustment, CSM.OtherLocation
FROM dbo.Mtq_CompleteStockMovement AS CSM
LEFT OUTER JOIN dbo.INVENTTABLE AS IT ON CSM.ITEMID = IT.ITEMID AND CSM.DataAreaID = IT.DATAAREAID
LEFT OUTER JOIN dbo.RBOINVENTTABLE AS RIT ON RIT.ITEMID=IT.ITEMID AND RIT.DATAAREAID=IT.DATAAREAID
WHERE CSM.DataAreaID='tcl' AND CSM.LabelId =5 AND CSM.InventLocationID='SW143' AND CSM.Dated BETWEEN '2013-11-01' AND '2014-01-01'
GROUP BY CSM.Dated,RIT.BUSINESSGROUP,RIT.DIVISIONGROUP,RIT.ITEMDEPARTMENT,CSM.InventLocationID,CSM.ITEMID,IT.ITEMNAME,RIT.SEASONCODE,CSM.LabelId,CSM.LabelName,CSM.OtherLocation
) AS TempTable
GROUP BY TempTable.Dated, TempTable.BusinessGroup
ORDER BY TempTable.Dated, TempTable.BusinessGroup