我想从 Table1 获取记录,其中访问号码的记录多于1条记录,但同时此访问号码< / strong>也应出现在表2 。
中示例:
表1
SCRIPTS = $(wildcard *.py)
.PHONY: all
all: $(SCRIPTS)
$(SCRIPTS):
python $@
p_05.py p_08.py p_09.py: p_01.py
p_09.py: p_03.py
p_10.py: p_05.py
p_11.py: p_08.py
表2
make -B -j4
查询结果应为1000。
这是我到目前为止所要做的,请建议。
Access Number
- 1000
- 1000
- 1000
- 2000
- 3000
- 4000
- 5000
- 5000
编辑:
我还需要Table2中的列值
Access Number Value
- 1000 - Test1
- 2000 - Test2
- 3000 - Test3
答案 0 :(得分:1)
这是对问题的原始版本的回答。
我会使用exists
:
select t1.AccessNumber
from Table1 t1
where exists (select 1 from table2 t2 where t2.AccessNumber = t1.AccessNumber)
group by t1.AccessNumber
having count(*) > 1;
即使您在table2
中有重复项,这也有效。
答案 1 :(得分:0)
- 请尝试此代码
Create table #table1 (Accessnumber int)
Create table #table2 (Accessnumber int)
go
truncate table #table1
insert into #table1 values
(1000)
,(1000)
,(1000)
,(2000)
,(3000)
,(4000)
,(5000)
,(5000)
insert into #table2 values
(1000)
,(2000)
,(3000)
select t1.Accessnumber, count(*)NoOfRecords
from #table1 t1
inner join #table2 t2 on t2.Accessnumber = t1.Accessnumber
group by t1.Accessnumber
having count(*)>1
答案 2 :(得分:-1)
您可以使用ROW_NUMBER()对Table1查询进行排名,并将Table2与结果相关联。以下是示例查询。
SELECT AccessNumber,RN
FROM
( SELECT a.AccessNumber
, ROW_NUMBER() OVER(PARTITION BY a.accessNumber, ORDER BY A.accessNumber) AS RN
FROM Table1 a
) O
JOIN Table2 b on b.AccessNumber = o.AccessNumber
WHERE RN > 1