SQL - 将两个表中的数据插入第三个表

时间:2017-10-11 11:49:48

标签: sql select sql-server-2005

表1包含产品信息,表2包含客户信息



Table 1 (Product Information)
---------------
product | value
---------------
Product_A | 5
Product_B | 10



Table 2 (client Information)
----------------------------------------------------
ConsumerID | Purchase_product_A |  Purchase_product_B
----------------------------------------------------
1A | 3 | 4
2B | 2 | 3




我需要在第三个表中获得这些信息=表3



Table 3
--------------------------------
ConsumerID | Frequency | product
---------------------------------
1A | 3 | Product_a
1A | 4 | Product_b
2B | 2 | Product_a
2B | 3 | Product_b




在表3中,我需要概述:ConsumerID,购买频率和产品。对于每个产品,ConsumerID可以有一个单独的行。

重要的是要知道只支持SQL-Server-2005,并且每个查询都需要以选择开始。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

你需要解开。我喜欢使用apply

select u.*
from table2 t2 cross apply
     (select customer_id, 'A' as product, Frequency_purchase_product_A as frequency
      union all
      select customer_id, 'B' as product, Frequency_purchase_product_B as frequency
     ) u(customer_id, product, frequency);

我不认为第一张桌子是必要的。