2016-01-13 35 views
0

我需要使用不同的參數執行不同的查詢。這些參數安排在下面的表格T2中。每天這些參數都會改變,所以表T2會發生變化,並且我想要做的查詢結果也會改變。查詢方式簡單,但我不知道如何使用T2作爲參數的列執行...使用表的列作爲參數執行查詢

-----Table T2---- 

ID Country FilterExpression 
----------- ------- ------ ----- ----- 
1 Argentina 'Filter01' 
2 Brazil  'Filter02' 
3 USA  'Filter03' 
4 UK   'Filter04' 
5 France  'Filter05' 
6 Mexico  'Filter06' 
... 
100 Canada  'Filter100' 

我需要執行的查詢:

SELECT Element,Value 
FROM ArchTot 
WHERE Country = [Column Country of T2] 
AND FilterExpr = [Column FilterExpression of T2] 

有一次我的一個參數表100行,我的查詢結果必須具有相同的100行。

有人可以幫我建立這個查詢嗎?

+0

FilterExpression是否包含列名或標量值? –

回答

0

嘗試更具體,以便我能理解你需要做什麼..爲什麼你需要檢索100 100?當表格數據改變了舊數據時發生了什麼...您需要查詢新數據或數據在更改之前?

0

每天參數表都會改變,所以我必須執行查詢來更新結果。有一次,我有100個參數,我們將有100個結果:

Result of query from Tables Archtot or Archtot2

Country FilterExpr Value 
----------- ------- ------ ----- ----- 
Argentina 'Filter01' 100.82 
Brazil  'Filter02' 102.87 
USA  'Filter03' 82.7 
UK   'Filter04' 106.8 
France  'Filter05' 110.7 
Mexico  'Filter06' 79.9 
... 
Canada  'Filter100' 102.04 

我試過以下,它的工作原理...

SELECT A.Element,A.Value 
FROM ArchTot A, T2 B 
WHERE A.Country = B.Country 
AND A.FilterExpr = B.FilterExpression 

現在的問題是,我不能一旦我在FROM子句中插入了表T2,就執行一個INNER JOIN語句,它會給出超時。例如:

SELECT * FROM 
(

    (SELECT A.Element As Element,A.Value As Value, A.Country As Country 
    FROM ArchTot A, T2 B 
    WHERE A.Country = B.Country 
    AND A.FilterExpr = B.FilterExpression)T1 

INNER JOIN 

    (SELECT C.Element As Element,C.Value As Value, C.Country As Country 
    FROM ArchTot2 C, T2 D 
    WHERE C.Country = D.Country 
    AND C.FilterExpr = D.FilterExpression)T2 
    ON T1.Country=T2.Country 
) 

查詢I Built OK?任何想法爲什麼我不能執行INNER JOIN?

相關問題