2017-10-11 114 views
0

有表1提供产品信息和表2与客户信息SQL - 插入数据从两个表进入第三

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中,我需要概述消费者ID,购买频率和产品。 ConsumerID可以为每个产品分别设置一个行。

知道只支持SQL-Server-2005并且每个查询需要以选择开始非常重要。感谢帮助。

+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); 

我不认为第一个表是必要的。

+0

嗨戈尔丹,感谢您的快速回复。我编辑了表格以显示预期的结果。你仍然认为这种方法有效吗? – Christian

+0

@Christian。 。 。你必须填写正确的产品名称,但是,这应该起作用。 –

+0

@Gordan现在发生的事情是'B'而不是'A'。这意味着它会从table2中选择所有数据,但仅限于一种产品。任何想法为什么? – Christian

相关问题