简体   繁体   English

修改查询以使用INSERT INTO

[英]Modify query to use INSERT INTO

I have developed a pretty complicated query, and now have hard time modifying it to use INSERT INTO statement. 我已经开发了一个非常复杂的查询,现在很难修改它以使用INSERT INTO语句。

The query (VS syntax): 查询(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 ";

The query runs perfectly, but I would like to place the result of the query into the empty table Attendance , which already exists in the DB. 该查询运行完美,但是我想将查询结果放入数据库中已经存在的空表Attendance中。

Attendance table data types

TagID - int
SessionID - varchar
ScanningTime - datetime.

Please note that data types for Attendance table match with other tables data types. 请注意,“出勤表”的数据类型与其他表的数据类型匹配。

I have tried placing "INSERT INTO Attendance (s.TagID, se.SessionID, ScanningTime)" just before the SELECT statement, but then my query does not produce any results. 我曾尝试在SELECT语句之前放置“ INSERT INTO Attendance(s.TagID,se.SessionID,ScanningTime)”,但随后我的查询不会产生任何结果。

What is a proper way to modify my query to include INSERT INTO statement? 修改查询以包含INSERT INTO语句的正确方法是什么? Thanks 谢谢

EDIT: 编辑:

All your answers and suggestions where very helpful. 您所有的答案和建议都非常有帮助。 Thank you! 谢谢!

Remove (s.TagID, se.SessionID, ScanningTime) and just add INSERT INTO Attendance before your select 删除(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;

You can refer the below Code : 您可以参考以下代码:

@"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