寻找由他尚未完成的客户购买的产品

时间:2017-05-24 12:17:06

标签: sql hana

我有两个表,一个是每个客户购买的产品,另一个是客户在同一个支架中购买的产品。

我需要客户购买的产品与他不相似。

表1 - 购买的产品

|Customer_ID  |  Product_Purchased|  
|:-----------:|:-----------------:|  
|1            |  P1               |  
|1            |  P2               |  
|1            |  P3               |  
|2            |  P2               |  
|2            |  P4               |  
|2            |  P5               |  
|3            |  P1               |  

然后有一张表格,其中包含客户ID和类似客户购买的产品

表2

|Customer_ID  |  SimilarCustomers_Product_Purchased|  
|:-----------:|:----------------------------------:|  
|1            |  P1                                |  
|1            |  P2                                |  
|1            |  P6                                |  
|1            |  P7                                |  
|1            |  P4                                |  
|2            |  P4                                |  
|2            |  P7                                |  
|2            |  P3                                |  
|2            |  P1                                |  
|2            |  P5                                |  
|2            |  P8                                |  
|3            |  P2                                |  
|4            |  P2                                |  

现在我需要类似客户购买的产品,这些产品并非早先由实际购买的产品购买。

预期输出将如下所示:

输出

|Customer_ID  |  Product_Recommended|  
|:-----------:|:-----------------:|  
|1            |  P6               |  
|1            |  P7               |  
|1            |  P4               |  
|2            |  P7               |  
|2            |  P3               |  
|2            |  P1               |  
|2            |  P8               |  
|3            |  P2               |  
|4            |  P2               |  

这些产品不是由客户购买的,也是由类似产品购买的产品。

我试过了#34; Not Exists"找到相同的,但它只投掷不在第二个表中的客户。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

class Igrac { public int ID; public string Ime; public int Polje; public int Novac; public Igrac(int id, string ime, int polje, int novac) { ID = id; Ime = ime; Polje = polje; Novac = novac; } public void Pijun (int LocX,Image image, Form1 form) { PictureBox pijun = new PictureBox(); pijun.Size = new Size(20, 40); pijun.Location = new Point(LocX,655); pijun.Image = image; form.Controls.Add(pijun); } } 是这种集合操作的直接方式:

private void Form1_Load(object sender, EventArgs e)
{
    Igrac igrac1 = new Igrac(1, ImeIgraca1, 0, 10000);
    igrac1.Pijun(643, Properties.Resources.Pijun1,this);
}