簡體   English   中英

修改查詢以使用INSERT INTO

[英]Modify query to use INSERT INTO

我已經開發了一個非常復雜的查詢,現在很難修改它以使用INSERT INTO語句。

查詢(VS語法):

           @"SELECT s.TagID, se.SessionID, " +
           " @todaysDate " +
           " AS ScanningTime " +
           " FROM (((Student s " +
           " LEFT JOIN [CourseID-ModuleID] cm ON s.CourseID = cm.CourseID) " +
           " LEFT JOIN [ModuleID-SessionID] ms ON cm.ModuleID = ms.ModuleID) " +
           " LEFT JOIN [Session] se ON ms.SessionID = se.SessionID) " +
           " WHERE s.TagID = @tagNo " +
           " AND se.SessionDate = cast(getdate() as date) " +
           " AND se.SessionTimeStart <= @Plus30Min " +
           " AND se.SessionTimeEnd >= @Plus30Min ";

該查詢運行完美,但是我想將查詢結果放入數據庫中已經存在的空表Attendance中。

Attendance table data types

TagID - int
SessionID - varchar
ScanningTime - datetime.

請注意,“出勤表”的數據類型與其他表的數據類型匹配。

我曾嘗試在SELECT語句之前放置“ INSERT INTO Attendance(s.TagID,se.SessionID,ScanningTime)”,但隨后我的查詢不會產生任何結果。

修改查詢以包含INSERT INTO語句的正確方法是什么? 謝謝

編輯:

您所有的答案和建議都非常有幫助。 謝謝!

刪除(s.TagID, se.SessionID, ScanningTime) ,然后在選擇之前添加INSERT INTO Attendance

@"INSERT INTO Attendance
 SELECT s.TagID, se.SessionID, "
 etc...
INSERT INTO table2
(column_name(s))
SELECT column_name(s)
FROM table1;

您可以參考以下代碼:

@"INSERT INTO Attendance(
   TagID , 
   SessionID,
   ScanningTime )
SELECT s.TagID, se.SessionID, " +
           " @todaysDate " +
           " AS ScanningTime " +
           " FROM (((Student s " +
           " LEFT JOIN [CourseID-ModuleID] cm ON s.CourseID = cm.CourseID) " +
           " LEFT JOIN [ModuleID-SessionID] ms ON cm.ModuleID = ms.ModuleID) " +
           " LEFT JOIN [Session] se ON ms.SessionID = se.SessionID) " +
           " WHERE s.TagID = @tagNo " +
           " AND se.SessionDate = cast(getdate() as date) " +
           " AND se.SessionTimeStart <= @Plus30Min " +
           " AND se.SessionTimeEnd >= @Plus30Min ";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM