我正在尝试根据我的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并尝试进行连接,但我正在失去如何修复它
答案 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子句的原因,这些子句只应过滤掉三个选定列中具有相关数据的行。