SQL从两个表创建一个表,而不是联合表或联接表

| 我是SQL的新手,但到目前为止我还无法在此上找到任何内容,因此也许这是不可能的,但我想我会问。 我有两个表,我想使用一个作为模板创建一个表,并将另一个的元素添加到反映第二个表的行信息的新列中。所有这些都与记录ID相匹配。我不确定我的描述是否很好,所以希望该示例对您有所帮助。 这两个表看起来像 记录ID ...所有者.....客户 ....... 1 ............蒂姆........... HL ... ....... 2 ............ Jon ........... JP ...... ....... 3 ............ Evan ......... JP ...... 记录ID ...问题#.....问题响应 ....... 1 ............ 65 .............. Y ...... ....... 1 ............ 68 .......... N ....... 2 ............ 65 ........... Y ...... ....... 2 ............ 68 .............. Y ...... ....... 3 ............ 68 .............. N ...... 新表如下所示: 记录ID ...所有者.....客户。问题65 ...问题68 ....... 1 ............蒂姆........... HL ......是...................否 ....... 2 ............ Jon .......... JPJPY .................... Y ....... 3 ............ Evan ............ JP ............ NULL ...... ........... N     
已邀请:
        我认为您正在寻找枢纽。在这里查看详细信息: http://msdn.microsoft.com/en-us/library/ms177410.aspx http://geekswithblogs.net/lorint/archive/2006/08/04/87166.aspx     
        如果只有Question65和Question68,则可以使用下面提到的查询。如果您从Question1开始,一直到Question65、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
    
        这样的事情确实非常好用应用程序代码完成。但是,如果您坚持使用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     

要回复问题请先登录注册