sql - 在 SQL Server 2012 中查找多个结果(不重复)
问题描述
我需要帮助。我有一份他们使用过的客户和服务的列表,但我需要将该列表缩小到使用过一项以上服务的客户(不包括只使用过一项服务的客户)。他们有时不止一次使用相同的服务,但我需要一份独特服务的列表。
下面带回了主要的客户列表。
SELECT
DISTINCT M.CustID
,S.ServiceID
,R.ReceivedDate
,S.ServiceRequestID
FROM Customers AS M
LEFT OUTER JOIN CustomerDates AS R ON M.CustID = R.CustID
LEFT OUTER JOIN Service1 AS S ON R.ServiceRequestID = S.ServiceRequestID
WHERE S.CloseDate IS NULL
我需要的是一个排除前三行的列表,因为他们只使用了一项服务,而接下来的七行我需要,因为他们使用了不止一项服务。
解决方案
尝试以下,它应该工作
SELECT
CustID
,ServiceID
,ReceivedDate
,ServiceRequestID
FROM
(SELECT
DISTINCT M.CustID
,S.ServiceID
,R.ReceivedDate
,S.ServiceRequestID
,count(*) over (partition by M.CustID) as total
FROM Customers AS M
LEFT OUTER JOIN CustomerDates AS R ON M.CustID = R.CustID
LEFT OUTER JOIN Service1 AS S ON R.ServiceRequestID = S.ServiceRequestID
WHERE S.CloseDate IS NULL
) vals
where total > 1
推荐阅读
- python - 我正在使用 pip install cx_Oracle 安装 cx_Oracle 并收到错误“无法造轮子”
- html - Sqlite3 Delete Query 显示成功但不删除行或影响数据库
- php - 数据库更新后重定向
- google-apps-script - 如何循环使用不同范围值的谷歌脚本函数?
- partial-views - 每个列表项的 PartialView
- windows - 将一个文件拖到另一个文件上并释放到底是做什么的?
- javascript - 我的简单 rng 代码不起作用。为什么呢?
- c - “运行代码”在 Visual Studio Code(Ubuntu c 语言)中不起作用
- c - avcodec_find_decoder() - 分段错误
- c++ - c++ 文件之间未定义的引用