2014-09-05 27 views
0

我使用MS Access數據庫,我想生成每日股票報告從表TMP4如下,在MS運行總計訪問

Dt__________OpStk___PQty___SQty

2014年1月4日___ 120_____0_______4

04/04/2014 _____ 0_____0_______2

2014年8月4日_____ 0_____0_______1

2014年11月4日_____ 0____20_______3

16/04/2014 _____ 0_____0_______5

25/04/2014 _____ 0____10_______3

注: - 期末存貨=期初數額+購買數量 - 銷售數量

我用下面的查詢

'SELECT A1.DT, A1.OpStk, A1.PQty, A1.SQty, 
(SELECT SUM(A2.OpStk+A2.PQty-SQty) FROM Tmp4 AS A2 
WHERE A2.DT <=A1.DT) AS ClosingStk 
FROM Tmp4 AS A1' 

這給了我以下結果

Dt___ _______OpStk___PQty___SQty____ClosingStk

2014年1月4日___ 120_____0_______4_______116

2014年4月4日_____ 0_____0_______2_______114

2014年8月4日_____ 0_____0_______1_______113

2014年11月4日_____ 0____20_______3_______130

16/04/2014 _____ 0_____0_______5_______125

25/04/2014 _____ 0____10 _______3_______132

每日庫存報告,我要的是如下,

Dt__________OpStk___PQty___SQty____ClosingStk

2014年1月4日___ 120_____0_______4_______116

2014年4月4日___ 116_____0_______2_______114

2014年8月4日___ 114_____0_______1_______113

11/04/2014 ___ 113____20_______ 3_______130

16/04/2014 ___ 130_____0_______5_______125

25/04/2014 ___ 125____10_______3_______132

誰能告訴我怎麼樣?

回答

0

乍一看,我認爲你可以替代A1。OpStk在較長版本的第一行上,這加起來以前關閉股票價格:

SELECT A1.DT, (SELECT SUM(A2.OpStk+A2.PQty-SQty) FROM Tmp4 AS A2 WHERE A2.DT <=A1.DT) AS OpStk, A1.PQty, A1.SQty, 
(SELECT SUM(A2.OpStk+A2.PQty-SQty) FROM Tmp4 AS A2 
WHERE A2.DT <=A1.DT) AS ClosingStk 
FROM Tmp4 AS A1; 
0

感謝您的快速響應。您提供的查詢給出的結果稍有不同。所以我修改它爲

SELECT A1.DT, (SELECT SUM(A2.OpStk+A2.PQty-A2.SQty) FROM Tmp4 AS A2 WHERE A2.DT < A1.DT) AS OpStk, 
A1.PQty, A1.SQty, 
(SELECT SUM(A2.OpStk+A2.PQty-A2.SQty) FROM Tmp4 AS A2 
WHERE A2.DT <=A1.DT) AS ClosingStk 
FROM Tmp4 AS A1; 

而且解決了它。非常感謝,讓我看看方式。