2011-06-14 73 views
0

我是SQL新手,但到目前为止我还没能找到任何东西,所以也许这是不可能的,但我想我会问。SQL从两个而不是联合或联合创建一个表

我有两个表,我想创建一个表,使用一个作为模板,并将另一个的元素添加到反映第二个表的行信息的新列。所有这些都通过记录ID进行匹配。我不确定我是否描述得很好,所以我希望这个例子有帮助。

两个表看起来像

记录ID ...业主.....客户

....... 1 ............ Tim ........... 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 ............ Tim。 .......... HL ............... Y .................... N

....... 2 ............乔恩........... JP ............... Y ..................... Y

....... 3 ............ Evan .. ....... JP ............ NULL ................. N

+1

Record可以记录多少个问题? – THEn 2011-06-14 20:07:14

回答

1

如果只有Question65和Question68那么你可以使用下面的mentiond查询。如果你从问题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