2012-05-15 26 views
0

我試圖找出爲什麼第二個BEGIN/END塊在第22行和第25行的錯誤。兩種情況下的END。我錯過了什麼?另外我怎樣才能讓這一個查詢,而不是兩個塊?兩端行的案例陳述錯誤

BEGIN 

    SELECT 

    l.partNum AS [Part Number] 
    ,l.pricePerUOM AS [Price Per UOM] 
    ,l.uom AS [UOM] 
    ,SUM(CONVERT(DECIMAL(18,12), l.totalCostPerWS/l.pricePerUOM)) AS [Quantity/WS] INTO #temp 
    FROM tbl_step s 
    JOIN tbl_line l ON s.stepId = l.stepId 
    WHERE s.revisionId = @revisionId 
      AND ISNUMERIC(l.totalCostPerWS) > 0 
      AND ISNUMERIC(l.pricePerUOM) > 0 
     GROUP BY l.partNum, l.pricePerUOM, l.uom 
    END 

    BEGIN 
     SELECT 
      l.partNum AS [Part Number] 
      ,l.pricePerUOM AS [Price Per UOM] 
      ,l.uom AS [UOM] 
     ,CASE 
      WHEN l.partNum >=2 AND l.uom = 'liter' THEN (SELECT CONVERT(DECIMAL(18,12),[Quantity/WS] * 1000) 
     END AS [Converted] 
     ,CASE 
      WHEN l.uom = 'milliliter' THEN (SELECT CONVERT(DECIMAL(18,12),[Quantity/WS] + l.pricePerUOM) 
     END AS [Qnty/WS + Price per UOM] 
     FROM #temp 
      JOIN tbl_line l ON s.stepId = l.stepId 
      JOIN tbl_step s ON l.stepId = s.stepId 
      WHERE 
       ISNUMERIC(l.totalCostPerWS) > 0 
      AND ISNUMERIC(l.pricePerUOM) > 0 
     GROUP BY l.partNum, l.pricePerUOM, l.uom 
    END 

感謝您的任何幫助。 ˚F

+0

使用代碼按鈕(花括號)來格式化您的代碼。更多信息:http://meta.stackexchange.com/a/22189/147438 –

+1

什麼是錯誤? – BeemerGuy

+0

好吧,我強烈建議不要說「嗨,我有這個巨大的查詢錯誤,爲什麼?」您應該首先向我們展示您的表格中的數據和您想要的結果。我99%的肯定,如果你從那裏開始,我們可以顯示一個更有效的方式來檢索所需的結果比做所有這些#temp表和雙嵌套查詢的東西。 –

回答

0

失去嵌入式SELECT的:

,CASE 
WHEN l.partNum >=2 AND l.uom = 'liter' THEN CONVERT(DECIMAL(18,12),[Quantity/WS] * 1000) 
END AS [Converted] 
,CASE 
WHEN l.uom = 'milliliter' THEN CONVERT(DECIMAL(18,12),[Quantity/WS] + l.pricePerUOM) 
END AS [Qnty/WS + Price per UOM] 
+0

哇,謝謝約翰,結束了這個問題。 :) – Frater

+0

不客氣。如果這對你有用,請在回答中標記Accepted複選框:) –

1

你也有這樣的:

FROM #temp 
JOIN tbl_line l ON s.stepId = l.stepId 
JOIN tbl_step s ON l.stepId = s.stepId 

我想也許你的意思是:

FROM #temp AS t 
JOIN tbl_line l ON t.stepId = l.stepId 
JOIN tbl_step s ON l.stepId = s.stepId 

然而這將需要#temp有一個stepId列。我認爲你需要退後一步,開始一個更簡化的查詢,因爲你現在正在做的一大堆事情沒有意義。

+0

對不起,新手入門。但我的頂部查詢塊工作正常,並將數據輸出到臨時表。 – Frater

+0

那麼第二塊上的錯誤是什麼?你需要包含足夠的信息,人們可以弄清楚發生了什麼。 「破碎」不會削減它。 –

+0

對不起Aaron,我試圖添加一些表格數據,但添加和格式化比代碼本身給我更多的問題! :) – Frater