2014-09-22 55 views
-1

如果有人可以幫忙,請插入表包括外鍵到相關表

我有三個表:1.客戶; 2個帳戶; 3.交易...

我想獲得的客戶端ID CLIENTNAME並且還通過帳戶名ACCOUNTID然後插入對於那些已知的一些其他領域的ID`s交易和其他一些價值觀......

客戶端

ClientID | ClientName | ... 

帳戶

AccountID | AccountName | ... 

交易

TransID | Account ID | ClientID | Value | Tax | Total 

我怎麼能做到這一點...我試圖插入語句的許多許多形式,但它沒有工作

我嘗試這樣做:

INSERT INTO Transactions (AccountID, ClientID, Value) Values 
(SELECT AccountID WHERE AccountName = 'Some Name' 
FROM Accounts, SELECT ClientID WHERE ClientName = 'Some Name' FROM Clients, 30.00) 
+0

出租車你告訴我們你試過的東西嗎? – Matheno 2014-09-22 09:55:47

+0

我試過的最後一個是: INSERT INTO事務(AccountID,ClientID,Value) 值(SELECT AccountID WHERE AccountName ='Some Name'FROM Accounts,SELECT ClientID WHERE ClientName ='Some Name'FROM Clients,30.00) – 2014-09-22 10:04:00

+0

' SELECT ClientID WHERE ClientName ='某個名字'從客戶端,30.00'不會返回一個字符串?你試着把它放在大括號裏嗎? – Haris 2014-09-22 11:09:09

回答

1

Value是在MS Access中的保留字。

我想你想是這樣的:

INSERT INTO Transactions (AccountID, ClientID, [Value]) 
SELECT Accounts.AccountID, Clients.ClientID, 30.00 AS Expr1 
FROM Accounts, Clients 
WHERE (((Clients.ClientName)='Jimmy') AND ((Accounts.AccountName)='Mark')); 

你需要重寫SQL正確可能適合你的表/表的名字,但是這個工作對我來說。

你也應該確保Value是一個Double數據類型,不是一個長整數。 (這是數字字段的默認值)

+0

我得到SQL執行錯誤 – 2014-09-22 13:29:32

+0

@ShpetimHaxhiu這並沒有告訴我很多。如果您完全複製了我寫的內容,則可能需要更改表名稱和可能的字段名稱以匹配您的數據庫。 – 2014-09-22 13:30:50

+0

@ShpetimHaxhiu我不知道。我只是嘗試了OverMind的查詢,它對我來說工作得很好。 – 2014-09-22 13:31:50