2010-07-19 109 views
1

嗨我正在開發一個需要在Access SQL查詢中使用大量列的項目。一個典型的查詢中包含多個字段,如下面的一個:如何在Access SQL查詢中使用變量

SELECT ([Score1]+[Score2]+[Score3])*.5 AS [Scores], [Subject] FROM [ScoresTable] 
WHERE ([Score1]+[Score2]+[Score3])*.5 > 500 

有沒有什麼辦法的([Score1]+[Score2]+[Score3])*.5值賦值給一個變量,因此我才能生效寫一樣的東西:

SELECT ([Score1]+[Score2]+[Score3])*.5 AS [Scores] *= VAR*, [Subject] 
FROM [ScoresTable] WHERE *VAR* > 500 

如果是可能的,請你告訴我如何取得這樣的結果?

謝謝。

+0

不,沒有辦法做到這一點。 – 2010-07-19 13:50:43

+3

您可能會發現使用兩個查詢(其中一個具有計算和第二個查詢),您可以在其中選擇感興趣的計算(WHERE)記錄。 – Fionnuala 2010-07-19 14:03:41

+0

我不知道訪問,但不能只是創建一個VIEW從ScoresTable獲取列Scores和Subject,然後查詢該VIEW而不是ScoresTable? – 2010-07-19 14:20:31

回答

1
SELECT sq.Scores, sq.Subject 
FROM (
    SELECT (Score1+Score2+Score3)*.5 AS Scores, Subject 
    FROM ScoresTable 
    ) AS sq 
WHERE sq.Scores > 500; 

如果Score1,Score2或Score3可能爲Null,則可能需要使用Nz函數將零替換爲Null。

+0

我試過這個,它工作。 謝謝。 – 2010-07-20 09:44:54