spx用于将值移动到新表

时间:2016-08-23 04:22:14

标签: sql-server sql-server-2008

我正在尝试根据我的ID创建一个spx,这是1009将9列数据移动到新表:

旧表有9列:

CD_Train
CD_Date
CD_Score
Notes_Train
Notes_Date
Notes_Score
Ann_Train
Ann_Date
Ann_Score 
userid - common in both tables
ID - 1009 - only exists in this table 

我的新表有:

TrainingID, 
TrainingType,
Score,
Date,
Status,
userid 

TrainingType将有3个值:Notes,CD,Ann 和其他领域如得分将从notes_score等获取数据 和date将从notes_date,cd_date获取数据,具体取决于CD培训的列

状态将从Notes_Train,cd_train等获得值

基于此,我迷失了,我应该怎么做

我尝试查询一个用户表的sql并尝试进行连接,但我正在失去如何修复它

1 个答案:

答案 0 :(得分:0)

不知道如何填写专栏trainingId,但其余的可以通过应用一些UNION ALL条款来完成:

INSERT INTO tbl2 (trainingType,Date,Score,Status,userid)
Select 'CD' , CD_date, CD_score, CD_Train, userid FROM  tbl1 where CD_date>0
UNION ALL 
SELECT 'Notes', Notes_Date, Notes_Score, Notes_Train, userid FROM tbl1 where Notes_date>0
UNION ALL
SELECT 'Ann', Ann_Date, Ann_Score, ANN_Train, userid 
FROM tbl1 where Ann_date>0

我还不知道是否所有列都填充在每一行中。这就是where子句的原因,这些子句只应过滤掉三个选定列中具有相关数据的行。