我有一个@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)
)
答案 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)