获得两个 table 连接的结果
Get result on two table join
我有一个条件,我想加入 table 1 和 table 2,table 1 包含交给推销员销售的产品和 table 2有业务员售罄的销售数据。
现在我想知道加入后每次销售的剩余产品。
下面是我的数据,这是我正在尝试做的,但它 return 只有销售员 1 的数据。
根据我的要求
,我需要帮助才能加入这些 table
CREATE TABLE Salesman_Product
(
SalesManID int,
ProductID int
)
INSERT INTO Salesman_Product (SalesManID,ProductID) Values (1,1),(1,2),(1,3),(1,4)
INSERT INTO Salesman_Product (SalesManID,ProductID) Values (2,1),(2,2),(2,3),(2,4)
--select * from Salesman_Product
CREATE TABLE Salesman_Sales
(
SalesManID int,
ProductID int,
Status varchar(3)
)
INSERT INTO Salesman_Sales (SalesManID,ProductID,Status) Values (1,1,'Yes'),(1,3,'Yes')
INSERT INTO Salesman_Sales (SalesManID,ProductID,Status) Values (2,1,'Yes'),(2,2,'Yes'),(2,3,'Yes')
--select * from Salesman_Sales
;WITH CTE_RES AS
(
SELECT * FROM Salesman_Product
WHERE ProductID NOT IN
(
SELECT Salesman_Sales.ProductID FROM Salesman_Sales INNER JOIN
Salesman_Product ON
Salesman_Sales.SalesManID =Salesman_Product.SalesManID
AND Salesman_Sales.ProductID =Salesman_Product.ProductID
--AND Salesman_Sales.SalesManID =1
)
)
SELECT * INTO #TEMP_RES FROM CTE_RES
SELECT * FROM #TEMP_RES
--DROP TABLE #TEMP_RES
要求的结果
SALESMANID PRODUCTID
1 2
1 4
2 4
你把一个简单的 select 和 not exists
复杂化了:
SELECT SalesManID, ProductID
FROM Salesman_Product p
WHERE NOT EXISTS (
SELECT 1
FROM Salesman_Sales s
WHERE p.SalesManID = s.SalesManID and p.ProductID = s.ProductID
)
结果:
SalesManID ProductID
1 2
1 4
2 4
我有一个条件,我想加入 table 1 和 table 2,table 1 包含交给推销员销售的产品和 table 2有业务员售罄的销售数据。
现在我想知道加入后每次销售的剩余产品。
下面是我的数据,这是我正在尝试做的,但它 return 只有销售员 1 的数据。
根据我的要求
CREATE TABLE Salesman_Product
(
SalesManID int,
ProductID int
)
INSERT INTO Salesman_Product (SalesManID,ProductID) Values (1,1),(1,2),(1,3),(1,4)
INSERT INTO Salesman_Product (SalesManID,ProductID) Values (2,1),(2,2),(2,3),(2,4)
--select * from Salesman_Product
CREATE TABLE Salesman_Sales
(
SalesManID int,
ProductID int,
Status varchar(3)
)
INSERT INTO Salesman_Sales (SalesManID,ProductID,Status) Values (1,1,'Yes'),(1,3,'Yes')
INSERT INTO Salesman_Sales (SalesManID,ProductID,Status) Values (2,1,'Yes'),(2,2,'Yes'),(2,3,'Yes')
--select * from Salesman_Sales
;WITH CTE_RES AS
(
SELECT * FROM Salesman_Product
WHERE ProductID NOT IN
(
SELECT Salesman_Sales.ProductID FROM Salesman_Sales INNER JOIN
Salesman_Product ON
Salesman_Sales.SalesManID =Salesman_Product.SalesManID
AND Salesman_Sales.ProductID =Salesman_Product.ProductID
--AND Salesman_Sales.SalesManID =1
)
)
SELECT * INTO #TEMP_RES FROM CTE_RES
SELECT * FROM #TEMP_RES
--DROP TABLE #TEMP_RES
要求的结果
SALESMANID PRODUCTID
1 2
1 4
2 4
你把一个简单的 select 和 not exists
复杂化了:
SELECT SalesManID, ProductID
FROM Salesman_Product p
WHERE NOT EXISTS (
SELECT 1
FROM Salesman_Sales s
WHERE p.SalesManID = s.SalesManID and p.ProductID = s.ProductID
)
结果:
SalesManID ProductID
1 2
1 4
2 4