尝试返回重复次数时出现合并问题

时间:2017-02-09 21:05:42

标签: sql-server coalesce

我有一个@NumberOfDups变量,我试图用一些重复填充,如果没有返回记录,则为变量赋值0。我收到错误消息116,级别16,状态1,第8行 当未使用EXISTS引入子查询时,只能在选择列表中指定一个表达式。

任何帮助/指示都将不胜感激。

这是我的代码:

DECLARE @NumberOfDups int; 
SET @NumberofDups = (
    SELECT COALESCE(
    (SELECT APPID, SiteID, CustomerID, Status, Effective_Date, End_Date, AppType, EDCode, Count(APPID)
    FROM Mcsfwisdtest.FRA.dbo.vw_HHSurvey
    WHERE CustomerID NOT LIKE ('%~%')
    GROUP BY APPID, SiteID, CustomerID, Status, Effective_Date, End_Date, AppType, EDCode
    HAVING COUNT(APPID) > 1),0)
) 

2 个答案:

答案 0 :(得分:1)

这将重复项计为count(appid)-1

的总和
declare @NumberOfDups int;

set @NumberofDups = coalesce(
  (select sum(Duplicates)
    from (
     select 
      Duplicates=Count(APPID)-1
     from Mcsfwisdtest.FRA.dbo.vw_HHSurvey
     where CustomerID not like ('%~%')
     group by APPID
      , SiteID
      , CustomerID
      , status
      , Effective_Date
      , End_Date
      , AppType
      , EDCode
     having COUNT(APPID) > 1
     ) as d
     ), 0)

答案 1 :(得分:0)

试试看我是否理解你的问题。

DECLARE @NumberOfDups int; 


SELECT @NumberofDups = COUNT(*) FROM
(SELECT APPID, SiteID, CustomerID, Status, Effective_Date, End_Date, AppType, EDCode, Count(APPID)
FROM Mcsfwisdtest.FRA.dbo.vw_HHSurvey
WHERE CustomerID NOT LIKE ('%~%')
GROUP BY APPID, SiteID, CustomerID, Status, Effective_Date, End_Date, AppType, EDCode
HAVING COUNT(APPID) > 1)