自從我做這份報告已經過了2個星期。我需要今天完成,但仍然無法找到任何解決方案。我知道我的錯誤發生在哪裏(它在我的INNER SELECT沒有GROUP BY ItemCode),但是我無法通過INNER SELECT上的ItemCode對它進行分組,因爲我的OUTER SELECT上有GROUP BY。我的INNER SELECT沒有提示正確的輸出
我將有一個錯誤在我的代碼,如果我把GROUP BY內部查詢內部和錯誤是:! 「子查詢返回多個值,這不是當子查詢遵循=,=允許, <,< =,>,> =或當子查詢用作表達「
這是我的代碼,它正在運行,但折舊金額高達每月全年所有的值。
DROP PROCEDURE dfsi_sp_FALS2
GO
CREATE PROCEDURE dfsi_sp_FALS2
@filterDate DATE
AS
SELECT ODPV.ItemCode, OITM.ItemName, ITM8.APC, ITM7.UsefulLife, SUM(ODPV.OrdDprPost) AS AccumulatedDep,
(ITM8.APC - SUM(ODPV.OrdDprPost)) AS NBV,
(SELECT SUM(ODPV.OrdDprPost) FROM ODPV WHERE ODPV.FromDate = '2014-01-01 00:00:00' AND
ODPV.ToDate = '2014-01-31 00:00:00' GROUP BY ODPV.ItemCode) AS DateofJanuary,
(SELECT SUM(ODPV.OrdDprPost) FROM ODPV WHERE ODPV.FromDate = '2014-02-01 00:00:00' AND
ODPV.ToDate = '2014-02-28 00:00:00') AS DateofFebruary,
(SELECT SUM(ODPV.OrdDprPost) FROM ODPV WHERE ODPV.FromDate = '2014-03-01 00:00:00' AND
ODPV.ToDate = '2014-03-31 00:00:00') AS DateofMarch,
(SELECT SUM(ODPV.OrdDprPost) FROM ODPV WHERE ODPV.FromDate = '2014-04-01 00:00:00' AND
ODPV.ToDate = '2014-04-30 00:00:00') AS DateofApril,
(SELECT SUM(ODPV.OrdDprPost) FROM ODPV WHERE ODPV.FromDate = '2014-05-01 00:00:00' AND
ODPV.ToDate = '2014-05-31 00:00:00') AS DateofMay,
(SELECT SUM(ODPV.OrdDprPost) FROM ODPV WHERE ODPV.FromDate = '2014-06-01 00:00:00' AND
ODPV.ToDate = '2014-06-30 00:00:00') AS DateofJune,
(SELECT SUM(ODPV.OrdDprPost) FROM ODPV WHERE ODPV.FromDate = '2014-07-01 00:00:00' AND
ODPV.ToDate = '2014-07-31 00:00:00') AS DateofJuly,
(SELECT SUM(ODPV.OrdDprPost) FROM ODPV WHERE ODPV.FromDate = '2014-08-01 00:00:00' AND
ODPV.ToDate = '2014-08-31 00:00:00') AS DateofAugust,
(SELECT SUM(ODPV.OrdDprPost) FROM ODPV WHERE ODPV.FromDate = '2014-09-01 00:00:00' AND
ODPV.ToDate = '2014-09-30 00:00:00') AS DateofSeptember,
(SELECT SUM(ODPV.OrdDprPost) FROM ODPV WHERE ODPV.FromDate = '2014-10-01 00:00:00' AND
ODPV.ToDate = '2014-10-31 00:00:00') AS DateofOctober,
(SELECT SUM(ODPV.OrdDprPost) FROM ODPV WHERE ODPV.FromDate = '2014-11-01 00:00:00' AND
ODPV.ToDate = '2014-11-30 00:00:00') AS DateofNovember,
(SELECT SUM(ODPV.OrdDprPost) FROM ODPV WHERE ODPV.FromDate = '2014-12-01 00:00:00' AND
ODPV.ToDate = '2014-12-31 00:00:00') AS DateofDecember
FROM ODPV
INNER JOIN OITM ON OITM.ItemCode = ODPV.ItemCode
INNER JOIN ITM7 ON ITM7.ItemCode = ODPV.ItemCode
INNER JOIN ITM8 ON ITM8.ItemCode = ODPV.ItemCode
WHERE
ODPV.DprArea = 'Main Area' AND ODPV.PeriodCat = @filterDate
GROUP BY ODPV.ItemCode, OITM.ItemName, ITM8.APC, ITM7.UsefulLife
GO
EXEC dfsi_sp_FALS2 '2014';
每月折舊列將re SULT到這一點,如果我運行上面的查詢:
Date of September:
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
432803.387566
此代碼是我需要什麼,但我不能做我的查詢,因爲這個代碼應該是在內部的選擇:
SELECT SUM(ODPV.OrdDprPost) AS DateofSeptember FROM ODPV WHERE ODPV.FromDate = '2014-10-01 00:00:00'
AND ODPV.ToDate = '2014-10-31 00:00:00' GROUP BY ODPV.ItemCode;
上面的代碼將導致這個(我想要的結果(這是每個ItemCode上月折舊)):
10200.000000
0.000000
0.000000
2921.000000
498.000000
1030.000000
0.000000
0.000000
427.000000
327.000000
0.000000
291.000000
30.000000
13.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
1899.000000
0.000000
1439.000000
28.000000
190.000000
18.000000
516.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
121.000000
121.000000
354.000000
382.000000
32.000000
588.000000
127.000000
88.000000
88.000000
0.000000
0.000000
388.000000
340.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
79.000000
457.000000
457.000000
167.000000
181.000000
213.000000
107.000000
82.000000
81.000000
135.000000
0.000000
217.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
35.000000
35.000000
35.000000
43.000000
18.000000
18.000000
2.000000
50.000000
174.000000
53.000000
29.000000
26.000000
48.000000
333.000000
27.000000
662.000000
1660.000000
1109.000000
154.000000
112.000000
218.000000
423.000000
85.000000
265.000000
221.000000
134.000000
1349.000000
21.000000
34.000000
54.000000
0.000000
121.000000
128.000000
83.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
616.000000
614.000000
1666.000000
0.000000
0.000000
0.000000
469.000000
1120.000000
9.000000
20.000000
99.000000
99.000000
152.000000
18.000000
656.000000
108.000000
84.000000
84.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
1188.000000
59.000000
0.000000
90.000000
90.000000
86.000000
86.000000
29.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
934.000000
934.000000
164.000000
0.000000
0.000000
0.000000
0.000000
104.000000
338.000000
338.000000
338.000000
284.000000
254.000000
35.000000
45.000000
45.000000
45.000000
168.000000
162.000000
162.000000
273.000000
275.000000
32.000000
609.000000
72.000000
72.000000
0.000000
0.000000
51.000000
我知道爲什麼它總結了,但我不能GROUP BY我的內部查詢,因爲它會有一個錯誤。
我需要你的幫助傢伙pleaseeee。非常感謝你。我會很感激你的建議。
可能是您的內部查詢返回多個值 – 2015-02-11 05:14:40
錯誤:「子查詢返回的值不止1個,當子查詢跟隨=,!=,<, <= , >,> =或子查詢用作表達。」我會在我的內部查詢中放置一個組時提示。我需要通過內部查詢進行分組,以便獲得正確的結果或者有其他選擇? – 2015-02-11 05:24:10