我在SQL服务器中找不到合适的查询时遇到问题。我有部门(表A)有许多客户(表B)的数据结构。我正在寻找一个查询来只检索客户端状态为活动状态的每个部门的一个客户端(第一次出现)。任何帮助?
答案 0 :(得分:0)
试试这个
SELECT *
FROM Table1 AS T1
WHERE
EXISTS
(
SELECT * FROM Table2 as T2
WHERE T1.Column1 = T2.Column1 AND Column2 = 1
)
AND EXISTS
(
SELECT * FROM Table2 as T2
WHERE T1.Column1 = T2.Column1 AND Column2 = 2
);
答案 1 :(得分:0)
然后,您可以尝试使用ROW_NUMBER。
返回结果分区中行的序号 设置,从1开始,每个分区的第一行。
像
这样的东西;WITH Vals AS (
SELECT d.*,
c.*,
ROW_NUMBER() OVER(PARTITION BY d.departmentid ORDER BY <SOME ORDER FIELDS>) RowID
FROm department d LEFT JOIN
clients c ON <SOME JOIN CONDITION>
AND c.[Status] = 'Active'
)
SELECT *
FROM Vals
WHERE RowID = 1