[英]SQL Sub-query (Where In)
我的子查詢出現錯誤,沒有看到我在做什么錯。 子查詢在它上工作。 哪里有問題顯然是什么問題。 還嘗試了EXISTS。
select [ID NUMBER], [PERNO], [TITLE], [INITIALS], [SURNAME], [DATE OF BIRTH]
from dbo.[DATASEPT002]
WHERE [ID NUMBER] IN
( SELECT [ID NUMBER], COUNT([PERSALNO]) AS COUNTOF
FROM [dbo].[DATASEPT]
GROUP BY [ID NUMBER] HAVING COUNT([PERSALNO]) >1 )
您在子查詢中有兩列。 IN
比較只能使用一個:
select [ID NUMBER], [PERNO], [TITLE], [INITIALS], [SURNAME], [DATE OF BIRTH]
from dbo.[DATASEPT002] t
WHERE [ID NUMBER] IN (SELECT [ID NUMBER]
FROM [dbo].[DATASEPT]
GROUP BY [ID NUMBER]
HAVING COUNT([PERSALNO]) > 1
);
但是,我通常使用窗口函數來表達這一點:
select t.*
from (select t.*, count(*) over (partition by persalno) as cnt
from DATASEPT002 t
) t
where cnt > 1;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.