2017-10-11 2 views
0

表1は、製品情報とクライアント情報を表2にあるに私は第三表=表でこれらの情報を持っている必要がありSQL - データの挿入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

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のみがサポートされ、各クエリはで始まる必要があることを知っておくことが重要です。手伝ってくれてありがとう。

+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

こんにちはGordan、すばやく返信いただきありがとうございます。予想される結果を示すためにテーブルを編集しました。あなたはまだアプローチが働いていると思いますか? @Christian。 – Christian

+0

。 。適切な製品名を記入する必要がありますが、これはうまくいくはずです。 –

+0

@Gordan今は「A」ではなく「B」のために働いています。つまり、table2からすべてのデータを選択しますが、1つの製品に対してのみです。なぜどんなアイデア? – Christian

関連する問題