我是SQL的新手,但到目前为止,我还没有找到任何关于此的内容,所以也许这是不可能的,但我想我会问。
我有两个表,我想创建一个表,使用一个作为模板,并将另一个的元素添加到反映第二个表的行信息的新列。所有这些都与记录ID相匹配。我不确定我是否描述得很好所以我希望这个例子有所帮助。
这两个表看起来像
记录ID ...所有者.....客户
....... 1 ............添........... HL ......
....... 2 ............乔恩........... JP ......
....... 3 ............埃文......... ...... JP
记录ID ...问题#.....问题回复
....... 1 ............ 65 ...........ÿ......
....... 1 ............ 68 ...........Ñ......
....... 2 ............ 65 ...........ÿ......
....... 2 ............ 68 ...........ÿ......
....... 3 ............ 68 ...........Ñ......
新表格如下:
记录ID ......所有者.....客户......问题65 ......问题68
....... 1 ............添........... HL .............. .Y ....................ñ
....... 2 ............乔恩........... JP .............. .Y .....................ÿ
....... 3 ............埃文......... JP ............ NULL ... ..............ñ
答案 0 :(得分:3)
我认为你正在寻找支点。点击此处了解详情:
http://msdn.microsoft.com/en-us/library/ms177410.aspx
http://geekswithblogs.net/lorint/archive/2006/08/04/87166.aspx
答案 1 :(得分:1)
如果您只有Question65和Question68,那么您可以使用以下提到的查询。如果你从问题1开始,一直到问题65,66,67 ...然后你最好在你的应用程序或者枢轴或其他方面做这件事。
INSERT INTO NewTable
SELECT t1.RecordID, t1.owner, t1.Customer, t2.Question65, t2.Question68
FROM table1 t1 LEFT JOIN (
SELECT q1.RecordID, q1.QuestionResponse AS Question65,
q2.QuestionResponse AS Question68
FROM Question q1 LEFT JOIN Question q2 ON
q1.RecordID = q2.RecordID and q2.Question# = 68
WHERE q1.Question# = 65
) t2
ON t1.RecordID = t2.RecordID
答案 2 :(得分:0)
真的,在应用程序代码中真的做得更好。但是,如果您坚持使用SQL,请查找数据透视表。一些示例页面:
http://www.simple-talk.com/sql/t-sql-programming/creating-cross-tab-queries-and-pivot-tables-in-sql/
http://www.bennadel.com/blog/496-SQL-Pivot-Tables-Are-Rockin-Awesome-Thanks-Rick-Osborne-.htm