2017-05-05 67 views
2

我想在C#中執行一些SQL以及Access數據庫。我有兩張桌子。主表和第二個表:SQL從其他表中獲取匹配值並在主表中顯示

MAIN TABLE 
DoubleValue |  |  |  | 
---------------------------------------- 
1,40  |  |  |  | 
1,80  |  |  |  | 
2,00  |  |  |  | 
1,80  |  |  |  | 
1,60  |  |  |  | 
1,60  |  |  |  | 
---------------------------------------- 

SECOND TABLE 
DoubleValue | Points | Weight | 
------------------------------- 
1,00  | 100 | 2  | 
1,20  | 98  | 2  | 
1,40  | 96  | 2  | 
1,60  | 94  | 2  | 
1,80  | 92  | 2  | 
2,00  | 90  | 2  | 
------------------------------- 

我需要根據「Double Value」列找到「SECOND TABLE」中的所有匹配行。然後對於匹配的行,我希望獲得「Points」和「Weight」列中的值以及多列這兩列,並創建名稱爲「Sum」的列,並將所有三列添加到「MAIN TABLE」中:

MAIN TABLE - RESULT/OUTPUT 
DoubleValue | Points | Weight | Sum | 
------------------------------------- 
1,40  | 96  | 2  | 192 | 
1,80  | 92  | 2  | 184 | 
2,00  | 90  | 2  | 180 | 
1,80  | 92  | 2  | 184 | 
1,60  | 94  | 2  | 188 | 
1,60  | 94  | 2  | 188 | 
------------------------------------- 

「主表」實際上並不需要「物理」插入新列。我非常喜歡它們是否可以顯示在輸出中,就像「SELECT Points * Weight AS Sum」會產生顯示「總和」但實際上並未插入表格中的位置。但確定,如果需要實際插入,那麼我會繼續。

這怎麼辦?

+1

這看起來像一個非常基本的'INNER JOIN'。你有什麼嘗試? –

+0

我確實很難弄清楚要嘗試什麼。我有15年沒做過任何SQL,所以我沒有記得如何做所有的INNER JOINS。我只記得非常非常基本的SQL,如SELECT,UPDATE和INSERT。 – Ptolemy

回答

0

您正在尋找更簡單的INNER JOIN聲明。請注意0​​被封裝,因爲它是大多數SQL變體中的保留字。請儘量避免使用這些詞命名項目。

SELECT m.DoubleValue 
,  s.Points 
,  s.Weight 
,  [Sum] = s.Points * s.Weight  

FROM  MainTable AS m 
INNER JOIN SecondTable AS s  ON m.DoubleValue = s.DoubleValue 
+0

好的,謝謝你的幫助。現在我知道做這件事的基礎知識,但是這部分肯定有些問題:「[Sum] = s.Points * s.Weight」。至少對於我來說,「[Sum]」的標題最終爲「Expr 1004」,列中的每個值都爲「0」。我假設你提供了正確的方式來做到這一點,但出於某種原因出現了問題。 – Ptolemy

+0

除此之外,「點」和「重量」列正被添加到「MainTable」中,以便部分順利。 – Ptolemy

相關問題