显示所有在夏季没有购买任何东西的客户
Show all customers who haven't bought anything in the summer months
我有两个表 "OEHR_Orders" 和 "OEHR_Customers"。
客户和订单都有链接 Customer_ID。
我现在想显示在 7 月或 8 月没有购买任何东西的所有客户。这是我的查询:
SELECT DISTINCT C.CUST_LAST_NAME ||'.'||SUBSTR(C.CUST_First_Name,1,1) AS "Name"
FROM OEHR_Customers C INNER JOIN OEHR_ORDERS O
ON C.Customer_ID = O.Customer_ID
WHERE EXTRACT(MONTH FROM O.Order_Date) NOT BETWEEN '7' and '8'
不幸的是,这个查询没有给我想要的结果。
一些想法?
SELECT DISTINCT CUST_LAST_NAME ||'.'||SUBSTR(CUST_First_Name,1,1) AS "Name"
FROM OEHR_Customers
WHERE Customer_Id not in (Select Customer_ID from OEHR_ORDERS
WHERE EXTRACT(MONTH FROM Order_Date) NOT BETWEEN '7' and '8')
我倾向于使用 GROUP BY
和 HAVING
:
SELECT C.CUST_LAST_NAME || '.' || SUBSTR(C.CUST_First_Name, 1, 1) AS "Name"
FROM OEHR_Customers C INNER JOIN
OEHR_ORDERS O
ON C.Customer_ID = O.Customer_ID
GROUP BY C.CUST_LAST_NAME || '.' || SUBSTR(C.CUST_First_Name, 1, 1)
HAVING SUM(CASE WHEN EXTRACT(MONTH FROM O.Order_Date) BETWEEN 7 and 8
THEN 1 ELSE 0 END) = 0;
HAVING
子句计算第 7 个月和第 8 个月出现的次数。然后它会过滤掉在这几个月内购买过商品的客户。
您的查询版本仅获取未在这些月份进行购买的客户。
我有两个表 "OEHR_Orders" 和 "OEHR_Customers"。
客户和订单都有链接 Customer_ID。 我现在想显示在 7 月或 8 月没有购买任何东西的所有客户。这是我的查询:
SELECT DISTINCT C.CUST_LAST_NAME ||'.'||SUBSTR(C.CUST_First_Name,1,1) AS "Name"
FROM OEHR_Customers C INNER JOIN OEHR_ORDERS O
ON C.Customer_ID = O.Customer_ID
WHERE EXTRACT(MONTH FROM O.Order_Date) NOT BETWEEN '7' and '8'
不幸的是,这个查询没有给我想要的结果。
一些想法?
SELECT DISTINCT CUST_LAST_NAME ||'.'||SUBSTR(CUST_First_Name,1,1) AS "Name"
FROM OEHR_Customers
WHERE Customer_Id not in (Select Customer_ID from OEHR_ORDERS
WHERE EXTRACT(MONTH FROM Order_Date) NOT BETWEEN '7' and '8')
我倾向于使用 GROUP BY
和 HAVING
:
SELECT C.CUST_LAST_NAME || '.' || SUBSTR(C.CUST_First_Name, 1, 1) AS "Name"
FROM OEHR_Customers C INNER JOIN
OEHR_ORDERS O
ON C.Customer_ID = O.Customer_ID
GROUP BY C.CUST_LAST_NAME || '.' || SUBSTR(C.CUST_First_Name, 1, 1)
HAVING SUM(CASE WHEN EXTRACT(MONTH FROM O.Order_Date) BETWEEN 7 and 8
THEN 1 ELSE 0 END) = 0;
HAVING
子句计算第 7 个月和第 8 个月出现的次数。然后它会过滤掉在这几个月内购买过商品的客户。
您的查询版本仅获取未在这些月份进行购买的客户。