在 INNER JOIN SQL Server 上获取 DISTINCT 记录

乔伯特·埃纳姆诺

我有两张桌子。我有通过INNER JOIN子句将第一个表连接到第二个表的查询结果显示存在冗余或重复的结果。在我下面的示例中,结果有 4 条记录。我想区分SdiID并且我希望只获得两条记录,因为sdiID. 我尝试DISTINCT sdiID在选择后添加,但仍然有 4 条记录。请帮忙。这是我的查询。

    DECLARE @PageNumber AS INT, @RowspPage AS INT 
        SET @PageNumber = 1 
        SET @RowspPage = 20 
        SELECT totalCount = COUNT(*) OVER(), mailbox.ID as mailboxID, 
          sdi.ID as sdiID
           FROM [SDI].dbo.UserDocumentLocationOutbox mailbox 
           INNER JOIN [SDI].dbo.SDITransaction
           sdi on mailbox.SDITransactionID=sdi.ID 
         INNER JOIN [SYSDB].dbo.DocumentType doc on sdi.DocumentTypeID=doc.ID 
    where mailbox.CommunityID = '9ff10c7a-37f5-4580-9163-6ada55194ca7' 
    and mailbox.UserProfileID = 'f9791614-8cc0-42e3-87d1-53709bc1e099' 
    and doc.CommunityID = '9ff10c7a-37f5-4580-9163-6ada55194ca7' 
    and doc.Active=1 and doc.HideInMailbox=0  
    order by sdi.ProcessedDateTime desc 
OFFSET ((@PageNumber - 1) * @RowspPage) ROWS FETCH NEXT @RowspPage ROWS ONLY

这是结果

在此处输入图片说明

喵喵
  with cte as (SELECT ROW_NUMBER() over(PARTITION BY sdi.ID order by sdi.ID) as rn,totalCount = COUNT(*) OVER(), mailbox.ID as mailboxID, 
          sdi.ID as sdiID
           FROM [SDI].dbo.UserDocumentLocationOutbox mailbox 
           INNER JOIN [SDI].dbo.SDITransaction
           sdi on mailbox.SDITransactionID=sdi.ID 
         INNER JOIN [SYSDB].dbo.DocumentType doc on sdi.DocumentTypeID=doc.ID 
    where mailbox.CommunityID = '9ff10c7a-37f5-4580-9163-6ada55194ca7' 
    and mailbox.UserProfileID = 'f9791614-8cc0-42e3-87d1-53709bc1e099' 
    and doc.CommunityID = '9ff10c7a-37f5-4580-9163-6ada55194ca7' 
    and doc.Active=1 and doc.HideInMailbox=0  
    order by sdi.ProcessedDateTime desc 
OFFSET ((@PageNumber - 1) * @RowspPage) ROWS FETCH NEXT @RowspPage ROWS ONLY)
select totalCount, mailboxID, sdiID
from cte 
where rn < 2

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从SQL Server中的INNER JOIN查询获取DISTINCT行

来自分类Dev

如何从SQL Server中的INNER JOIN查询获取DISTINCT行

来自分类Dev

SQL Server SUM()用于DISTINCT记录

来自分类Dev

使用DISTINCT / INNER JOIN时MS SQL删除重复项

来自分类Dev

sql join获取嵌套记录

来自分类Dev

使用INNER JOIN的SQL Server存储过程

来自分类Dev

sql记录获取最新记录-SQL Server

来自分类Dev

用INNER JOIN选择DISTINCT

来自分类Dev

如何获取SQL查询HAVING计数显示在INNER JOIN存在时具有相同值的两个记录

来自分类Dev

如何获取SQL查询HAVING计数显示在INNER JOIN存在时具有相同值的两个记录

来自分类Dev

SQL Server:小表上的INNER JOIN性能与IN子句中的子查询

来自分类Dev

在SQL Server中对多个条件使用INNER JOIN

来自分类Dev

如何在SQL Server中使用INNER JOIN删除?

来自分类Dev

SQL Server:INNER JOIN返回不正确的行

来自分类Dev

具有三个表的SQL Server INNER JOIN

来自分类Dev

将 LIMIT 添加到 INNER JOIN (SQL Server)

来自分类Dev

SQL INNER JOIN异常

来自分类Dev

IF语句上的INNER JOIN?

来自分类Dev

使用INNER JOIN的SQL查询排除了某些字段值为MP的数据库记录

来自分类Dev

以正确的方式从SQL Server获取单个记录

来自分类Dev

从SQL Server逐月,逐年,逐日获取记录

来自分类Dev

在多个表上的SQL INNER JOIN等于WHERE语法

来自分类Dev

复杂的INNER JOIN SQL请求

来自分类Dev

SQL INNER JOIN或最佳选择?

来自分类Dev

在SQL中双重INNER JOIN

来自分类Dev

对 LINQ INNER JOIN 的 SQL 查询

来自分类Dev

获取日期不为空的上一条记录 - SQL SERVER

来自分类Dev

SQL INNER JOIN与使用WHERE的LEFT JOIN

来自分类Dev

多个 Join / Inner Join SQL 的过滤条件

Related 相关文章

热门标签

归档