如何从多个关系数据结构查询唯一记录列表?

时间:2014-02-06 04:17:43

标签: sql

我在SQL服务器中找不到合适的查询时遇到问题。我有部门(表A)有许多客户(表B)的数据结构。我正在寻找一个查询来只检索客户端状态为活动状态的每个部门的一个客户端(第一次出现)。任何帮助?

2 个答案:

答案 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