2015-02-10 76 views
-1

我有一系列SQL查詢可以在查詢分析器在線工作,但我正在努力使它們適合我的asp頁面運行。SQL Server查詢提供ASP錯誤

查詢是...

SELECT part1 AS 'idParts', 
     count(*) AS 'Total' INTO #TempTable 
FROM T_Jobs 
WHERE MONTH(Date) = 1 
    AND YEAR(Date) = 2015 
GROUP BY part1 
UNION 
SELECT part2 AS 'idParts', 
     count(*) AS 'Total' 
FROM T_Jobs 
WHERE MONTH(Date) = 1 
    AND YEAR(Date) = 2015 
GROUP BY part2 
UNION 
SELECT part3 AS 'idParts', 
     count(*) AS 'Total' 
FROM T_Jobs 
WHERE MONTH(Date) = 1 
    AND YEAR(Date) = 2015 
GROUP BY part3 
DELETE 
FROM #TempTable 
WHERE idParts = 'Select Part:' 
    SELECT #TempTable.idParts,#TempTable.Total, 
          T_Parts.partCost INTO #TempTable2 
    FROM #TempTable 
    JOIN T_Parts ON #TempTable.idParts=T_Parts.idParts 
    SELECT Sum(Total*partCost) AS RESULT 
    FROM #TempTable2 

這個返回用於當月的所有部件的總成本,已經從一個表和相關價格的那部分從另一個檢索到的零件清單。

但是我怎麼會把它放到一個asp頁面中,所以我可以oConn.Execute(strSQL)它來顯示從#TempTable2'結果'請嗎?

我似乎無法爲strSQL執行正確的語法。

任何幫助或指導,將不勝感激!謝謝。

+1

你得到了什麼錯誤?你不能把SQL放入存儲過程,只需調用存儲過程? – 2015-02-10 14:41:49

+0

你有什麼嘗試?它是如何工作的?語法不會改變,您仍然可以像執行其他語句一樣執行SQL語句。 – David 2015-02-10 14:43:32

+0

我想你想要做UNION ALL,而不是UNION。 (如果不同選擇的結果相同......) – jarlh 2015-02-10 14:56:03

回答

0

嘗試......

strSQL = "select part1 as 'idParts',count(*) as 'Total' into #TempTable from  T_Jobs where MONTH(Date) = 1 AND YEAR(Date) = 2015 group by part1 " & 
"UNION " & 
"select part2 as 'idParts',count(*) as 'Total' from T_Jobs where MONTH(Date) = 1 AND YEAR(Date) = 2015 group by part2 " & 
"UNION " & 
"select part3 as 'idParts',count(*) as 'Total' from T_Jobs where MONTH(Date) = 1 AND YEAR(Date) = 2015 group by part3 " & 
"GO " & 
"delete from #TempTable where idParts = 'Select Part:' " & 
"GO " & 
"select #TempTable.idParts,#TempTable.Total,T_Parts.partCost into #TempTable2 from #TempTable join T_Parts on #TempTable.idParts=T_Parts.idParts " & 
"GO " & 
"select Sum(Total*partCost) as Result from #TempTable2 " 
+0

嗨,謝謝你的回答,但是我得到「關鍵字刪除附近的語法不正確」錯誤 – 2015-02-10 21:24:18

+0

嗨。我使用了這個答案,但是GO給出了不正確的語法,所以在這些點上,我將它分成4個單獨的查詢,並使用## TempTable將臨時表半永久化,以便我可以在單獨的查詢中引用它,完成後,一種享受。謝謝。 – 2015-02-10 22:23:10

+0

好。我很高興它有幫助。將它分成4個獨立的查詢是一個好主意,但請確保完成後清理## TempTable。 – Ryan 2015-02-12 14:18:46

0

好的解決......這裏就是我如何做到了(在您的幫助!)

我不得不把查詢拆分成4個部分,使臨時表一個半永久的,以便我可以在不同的查詢之間引用它。

STRSQL = 「part1的選擇爲 'idParts',計數(),如從T_Jobs '總計' 到##不是Temptable其中MONTH(日期)=」 & exp_month & 「AND YEAR(日期)=」 & exp_year &「由第1部分組 「& 」UNION ALL「 & 」選擇第2部分爲 'idParts',從T_Jobs計數()爲 '總計' WHERE月份(日期)=「 & exp_month &」 AND YEAR(日期)= 「& exp_year &」第2部分「&」UNION ALL「&」select part3 as'idParts',count()as'Total'from T_Jobs wher ËMONTH(日期)= 「& exp_month &」 和年(日期)= 「& exp_year &」,由3部分組 「
strSQL2 = 」從##不是Temptable刪去idParts = '選擇部分:'「
strSQL3 =」將## TempTable.idParts,## TempTable.Total,T_Parts.partCost轉換爲## TempTable2從## TempTable加入T_Parts on ## TempTable.idParts = T_Parts.idParts「
strSQL4 =」select Sum(Total
partCost)as來自## TempTable2的結果「

exp_month和exp_year變量來自引用表單,因此我可以選擇要查看的日期。

作品。謝謝你的幫助。