2013-01-14 92 views
1

我有兩個表,你可以在附加的數據庫文件中看到(我連着一個老的MS Access文件的.mdb和同一文件的新版本.ACCDB)的MS Access SQL查詢創建

一個表有一個數字主鍵字段和參考字段。

另一張表具有引用(例如1.1.1或1.1.2)作爲主鍵字段。

我需要做一個sql查詢,它將獲取第一個表的字段中的相應引用,並粘貼引用表中這些引用的描述。

因此,例如「TableToBeQueried」表的第一項是:

RecordID References 
     1 1.1.1; 1.1.2 

所以SQL查詢將返回理論從引用表1.1.1和1.1.2的參考說明它們是:

This is the first reference 
This is the second reference 

下載:http://www.mediafire.com/?6ppbztsx82mvmal,ny93tln8f097jpp

回答

1

TableToBeQueried不歸,這使得你的問題的特別苛刻。這將是一個結表,其中包括爲RecordIDParagraph每個組合的行更容易:

RecordID Paragraph 
     1 1.1.1 
     1 1.1.2 

但是,如果你堅持,你現在所擁有的,是可以做到的。

SELECT 
    t.RecordID, 
    t.Description, 
    t.References, 
    r.Paragraph, 
    r.Description 
FROM 
    TableToBeQueried AS t, 
    [References] AS r 
WHERE 
     '; ' & [t].[References] & ';' 
    Like '*; ' & [r].[Paragraph] & ';*' 
ORDER BY 
    t.RecordID, 
    r.Paragraph; 

這適用於在Access應用程序會話(SQL89模式)內運行的查詢。但是,如果您使用OleDb從外部Access(SQL92模式)運行此查詢,請將通配符字符從*更改爲%

這些是由查詢返回的前兩排:

RecordID t.Description References Paragraph r.Description 
     1 Description 1 1.1.1; 1.1.2 1.1.1  This is the first reference 
     1 Description 1 1.1.1; 1.1.2 1.1.2  This is the second reference 
+0

你是真棒。非常感謝你,你不知道這對我意味着什麼! 你會怎麼做,如果我確實像你建議的一個交界處,HansUp? @HansUp – Gallaxhar