2013-08-13 3 views
0

Я разработал довольно сложный запрос, и теперь мне трудно изменить его, чтобы использовать инструкцию 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. 

Обратите внимание, что типы данных для таблицы посещаемости соответствуют другим типам данных таблиц.

Я попытался разместить «INSERT INTO Attendance (s.TagID, se.SessionID, ScanningTime)» непосредственно перед оператором SELECT, но тогда мой запрос не дает никаких результатов.

Что такое правильный способ изменить мой запрос, чтобы включить инструкцию INSERT INTO? Благодаря

EDIT:

Все ваши ответы и предложения, где очень полезно. Спасибо!

+0

Try предваряя с тем, что у вас есть _without в qualifiers_, которые не имеют никакого смысла в таблица посещаемости; 'INSERT INTO Attendance (TagID, SessionID, ScanningTime)' –

ответ

1

Удалить (s.TagID, se.SessionID, ScanningTime) и просто добавьте INSERT INTO Attendance перед ваш выбор

@"INSERT INTO Attendance 
SELECT s.TagID, se.SessionID, " 
etc... 
+0

Спасибо, отметьте как ответ в течение 10 минут. – jaspernorth

0
INSERT INTO table2 
(column_name(s)) 
SELECT column_name(s) 
FROM table1; 
0

Вы можете передать код ниже:

@"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 "; 
Смежные вопросы