2017-01-09 61 views
0

請問你們是否可以爲我提供以下情況? 我有2張桌子。根據數字值的範圍創建連接

表1是這樣的: enter image description here

同時,這也是表2:

enter image description here

我想加入表2表1中查找基於每個作業等級在上限和下限列。

通過概念化一些可愛的答案在這裏,我設法拿出一個看起來像這樣的語句:

FROM table2 LEFT JOIN table1 ON (table2.[score] >= table1.[lower limit]) AND (table2.[score] <= table1.[upper limit]) 

上述聲明設法根據一系列加入他們的行列,但是,對於一些未知的原因,左表中的一些行失蹤,我無法確定它是什麼。例如(表2中的2000行,但查詢中只有1800行)

我確定連接是原因,就好像我將連接更改爲相等的左連接,2000行出現在查詢中。

有人能告訴我這個嗎?

問候, 廣永

+0

你是否有分數在分數之間 - 即59和60之間?或空白檔次,檔次<0 or > 100?我認爲你的加入可能會排除這些分數 - 儘管我希望左連接可以將所有記錄都強加給結果。 –

回答

0

也許這將是更清潔,從1-100創建值的表,並指定他們各自在您的類別,且其實質上鏡像你的表1. 然後,你可以做表2

SELECT Table1.Grade, Table2.Score 
FROM Table2 LEFT JOIN Table1 ON Table2.Score = Table1.Score 

這肯定會涵蓋0至100之間

如果手動輸入查詢分數,你也可以使用一個宏觀的數據像這樣簡單的所有整數: 去表格工具>>表>>改變

之前

然後使用設置現場行動,並設置

名稱 = Table2.Grade

價值 = IIf([Score]>=70,"Good",IIf([Score]<=59,"bad","so so"))

隨着這個^每次你輸入一個分數,它會自動填充成績列。

另一種選擇是創建一個查詢,如下所示,將評估每一行,並指定適當的等級:

SELECT Table2.Score, 
IIf([Score]>=70,"Good",IIf([Score]<=59,"bad","so so")) AS Grade 
FROM Table2; 

祝你好運!