SQL:如何正确存储来自外部Excel文档源的数据?
我正在使用SQL Server 2008,我正在使用导入向导导入数据。
我有像以下的Excel文件中的数据…
SessionID Email SubmitTime Question1 Question2 Question3 ---------- ----- ----------- --------- --------- ---------- 54535212 a@b.com 12/21/2011 Yes No Yes 54532342 c@d.com 12/22/2011 Yes Yes Yes 54535288 e@f.com 12/23/2011 No No Yes 54532399 g@h.com 12/24/2011 No Yes Yes
现在我想将它存储在我的数据库中,以便我可以轻松访问数据。 我想我应该做一个Users Table
, Questions Table
, Answers Table
, Submitted Table
。 为了我的目的,提交的表格可以成为用户表格的一列。
User `Email` `Submitted` `SessionID` Question `Question1` `Question2` `Question3` Answer `Email` `Question` `Answer`
如何使用Excel文档中的查询填充“答案”表? 或从Excel文档导入创build的初始表? 这似乎是一个简单的问题,但解决方法是由于某种原因逃避我。 谢谢你的帮助!
你的数据结构有点搞砸了。 如果Question1
到Question3
3有三列,那么您需要一个SurveyID
列或类别的东西来标识唯一的组合。 然后,您的答案表将具有UserID
, SurveyID
, Answer1
, SurveyID
和Answer1
列。
如果你的Question
表有一个Question
列和一个QuestionID
列(希望是一个identity
列,所以它自动增加,那么你会做这样的事情来填充你的Import
表中的Answer
表:
insert into answer (userid, questionid, answer) select u.userid, q.questionid, case when q.question = 'Question1' then i.question1 when q.question = 'Question2' then i.question2 when q.question = 'Question3' then i.question3 else null end as answer from import i inner join users u on i.email = u.email cross join question q