2016-03-01 51 views
-1

首先,對於我的英語不好,抱歉,英語不是我的母語。(SQL語句)插入到2個表格(和值需要匹配)

所以人們需要輸入「條碼」和「教室」 但是不需要插入條碼。符合給定條形碼的「ComputerID」需要插入「TblLocation」(以及「Classroom」)

但是你不能在INSERT INTO語句中使用WHERE或ON?


(它是一個Web應用程序,我與ASP.net和VB編程在Visual Studio。而且我尤斯MS SQL數據庫)。

My 2 tables and form (example)

+0

條形碼有一個唯一的索引嗎?如果不是,當有超過1場比賽時你想要什麼?你有什麼嘗試?這是一個非常簡單的連接來獲得價值。 –

+0

當新的教室被給予時,舊的會被覆蓋。所以我想我還需要一個UPDATE語句?但我也不太清楚INSERT語句......是這樣的嗎? INSERT INTO TblLocatie Classroom,ComputerID)VALUES(@ ParameterClassroom,@ ParameterComputerID)INNER JOIN TtblComputers ON TblComputers.ComputerID = TblLocatie.ComputerID; 謝謝。 –

+0

從你發佈的內容來看,不可能確定你的插入是什麼。如果沒有條形碼行會怎麼樣?你會用什麼?這裏最大的問題是你沒有提供太多的信息。我們不知道您的項目,無法看到您的屏幕。我們從INSERT開始。需要插入哪些表格?價值從何而來? –

回答

0

有仍然是你的解釋完全缺失的東西。從你發佈的表格中,如果你需要更新它會是這樣的。

update l 
set Classroom = @Classroom 
from tblLocation l 
join tblComputers c on c.ComputerID = l.ComputerID 
where c.Barcode = @Barcode 

當然,如果這兩個表中沒有任何一行,這將不會更新任何內容。

另一部分是INSERT。如果在tblComputers中有一排你可以做這樣的事情。

insert tblLocation 
(
    ComputerID 
    , Classroom 
) 
select @Classroom 
    , c.ComputerID 
from tblComputers c 
where c.Barcode = @Barcode 

但是在tblComputers中沒有一行會發生什麼?你將不得不先創建它?這仍然有很多漏洞,因爲你沒有提供任何有關你的過程的見解。我希望我發佈的代碼至少能讓你開始。

+0

他們在TblComputers有300個參賽作品。該計劃是關於庫存。 所以每臺計算機都有一個位置(站在教室裏) 我卡在的部分是他們在計算機的「位置」所在的位置給出的位置。所以他們給教室掃描或輸入條形碼。但是在TblComputers中它們不是「條形碼」,只有「ComputerID」,所以當人們給出條形碼時,程序需要知道這個條形碼來自哪個ComputerID並且需要輸出數據(所以「tblLocation」中的「ComputerID」&「Classroom」) –

+0

HUH ???這沒有任何意義。您在說tblComputers中的行沒有Barcode的值,但您希望根據傳入的值在另一個表中找到相關的行,但沒有包含該值的行。我認爲你需要發佈表格和一些示例數據以及一些輸入參數和期望的輸出。正如你所描述的那樣,它沒有任何意義。 –

+0

這裏是從我的數據庫的圖片(這是訪問,因爲它更清晰。) (Lokaal指課堂) http://imgur.com/a/Y8zbY –