I have a table full of tracking data for as specific course, course number 6.
Now I have added new tracking data for course number 11.
Each row of data is for one user for one course, so for users assigned to both course 6 and course 11 there are two rows of data.
The client wants all users who have completed course number 6 any time after August 1st 2008 to also have completion marked for course 11. However I can't just convert the 6 to 11 because they want to preserve their old data for course 6.
So for every row that has a course number of 6, is marked as complete, and is greater than the date August 1st 2008, I want to write the completion data over the row that contains the tracking for course 11 for that specific user.
I would need to carry over the data from the course 6 row to the course 11 row so things like user score and date of posted completion is moved over.
Here is the structure of the table:
userID (int)
courseID (int)
course (bit)
bookmark (varchar(100))
course_date (datetime)
posttest (bit)
post_attempts (int)
post_score (float)
post_date (datetime)
complete (bit)
complete_date (datetime)
exempted (bit)
exempted_date (datetime)
exempted_reason (int)
emailSent (bit)
Some values will be NULL and userID/courseID obviously won't be carried over as that is already in the right place.
Maybe I read the problem wrong, but I believe you already have inserted the course 11 records and simply need to update those that meet the criteria you listed with course 6's data.
If this is the case, you'll want to use an
UPDATE
...FROM
statement:See this related SO question for more info
Use SELECT to Insert records
Copy a value from one row to any other qualified rows within the same table (or different tables):
Start off by aliasing the table into 2 unique references so the SQL server can tell them apart
Next, specify the field(s) to copy.
Last, specify the conditions governing the selection of the rows
Depending on the conditions you may copy from a single row to a series, or you may copy a series to a series. You may also specify different tables, and you can even use sub-selects or joins to allow using other tables to control the relationships.
Try this:
This works well for coping entire records.