2015-04-05 27 views
1

我有表A,其包含列'CustomerID'和'MONTH'以及总是相同的列'PRODUCT'。 产品XSQL选择具有与不同表中的列值相匹配的列值的行

我也有一个包含列的“客户ID”和“月”但是这个表包含了很多的产品,而不仅仅是X.

我想从表B中选择行表B(批次)的'CustomerID'和'MONTH'与表A中的一行相匹配,这样我最终得到的是客户在同一个月购买的产品,因为他们购买了产品X

我尝试了以下方法:

PROC SQL; 
    CREATE TABLE DATA.RESULT AS 
    SELECT LOTS.Customer_ID, 
      LOTS.Product_Name, 
      LOTS.Order_Revenue, 
      LOTS.Month_Ordered 
    FROM DATA.Family_Holiday_Orders_Plus AS LOTS 
    INNER JOIN DATA.X AS X1 ON (X1.Customer_ID = LOTS.Customer_ID) 
    INNER JOIN DATA.X AS X2 ON (X2.Month_Ordered = LOTS.Month_Ordered); 
QUIT; 

回答

1

如果我理解正确的话,你要选择所有产品LOTS其中DATA.X另一行具有相同的Customer_ID和 值存在。

SELECT LOTS.Customer_ID, 
     LOTS.Product_Name, 
     LOTS.Order_Revenue, 
     LOTS.Month_Ordered 
FROM DATA.Family_Holiday_Orders_Plus AS LOTS 
WHERE EXISTS (
    SELECT 1 FROM DATA.X AS X1 WHERE X1.Customer_ID = LOTS.Customer_ID 
    AND X1.Month_Ordered = LOTS.Month_Ordered 
) 
+0

非常感谢!不敢相信我以前没有看到它 – JaJa 2015-04-05 17:20:06

相关问题