首页 > 解决方案 > 检索表中的重复名称(不是数字)

问题描述

我将附上一个链接,该链接准确地展示了我所面临的情况,其中包含显示的代码和应该发生的事情的描述。

见链接:https ://www.screencast.com/t/Zo3BH0i3v

如果您不想打开该链接,我将在下面解释该问题:

首先,代码:

--Query Duplicate Document Names--

SELECT count(dcd.Name)'How Many Duplicates', dcf.Name 'Folder Name', dcf.ID 
            'Folder ID', dcd.ID 'Document ID', dcd.name 'Document Name', 
            'https://' + txtcityssldomainname + '/' + 'Admin/DocumentCenter/Folder/Index/' 
            + Cast (FK_FolderID AS VARCHAR) AS Link_To_Folder
FROM tblcitysettings tblcs, DocumentCenterDocuments dcd
JOIN DocumentCenterFolders dcf on dcf.ID = dcd.FK_FolderID
WHERE dcf.FK_Status IN (40,10) AND (dcd.FK_Status IN (40,10)) AND 
      (dcd.IsArchived IN (0)) AND (dcf.Name NOT IN ('Content', 'Design', 'Banners', 
      'MyAccount'))
GROUP BY dcf.Name, dcf.ID, dcd.ID, dcd.Name, 'https://' + txtcityssldomainname
         + '/' + 'Admin/DocumentCenter/Folder/Index/' + Cast (FK_FolderID AS VARCHAR)
HAVING count(dcd.Name) = 1
ORDER BY dcd.ID

应该发生什么,是否应该为每个出现一次的文档在“1”的第一列中返回一个计数。如果文档出现多次,它将连接这些行并显示出现次数的值。

它不起作用,我完全不知所措。

任何帮助将不胜感激!

以下是已编辑的工作副本:

注意:我意识到我试图在列中合并一个奇异值,而其他值不一样。因此,它如何合并这些字符串?我重新编写了代码以显示最低限度。

SELECT count(dcd.DisplayName) 'Number of Duplicate Entries', dcd.DisplayName 'Document Name'

FROM DocumentCenterDocuments dcd

JOIN DocumentCenterFolders dcf on dcf.ID = dcd.FK_FolderID

where dcd.IsArchived IN (0) AND (dcd.FK_Status IN (40, 10)) AND (dcf.FK_Status IN (40, 10)) AND (dcf.Name NOT IN ('Content', 'Design', 'Banners', 'MyAccount'))

GROUP BY dcd.DisplayName

Having count(dcd.DisplayName) > 1 

谢谢!

标签: sqlsql-server

解决方案


推荐阅读