2017-10-11 359 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

相關問題